Próbuję wysłać prośbę o wpis z rozszerzeniemDokument MongoDB zwrócony z zapytania find, jako treść żądania w NodeJS.Ale na serwerze otrzymuję komunikat Error: Invalid JSON. Poniżej znajduje się dokument, który próbuję POST
{
"_id" : ObjectId("5739a6bf3f1b41477570dc89"),
"taskCount" : 2,
"study" : "cod",
"phase" : "mansa2",
"rhimeTaskId" : "5739a6bec4567f6e737fd3db",
"recordId" : "5726f3cfc4567f6e737fc3ab",
"recordStudy" : "codstudy",
"recordPhase" : "mansa2",
"recordLanguage" : "Punjabi",
"recordScript" : "Latin",
"_state" : "CodingComplete",
"tasks" : [
{
"physician" : ObjectId("5739a6bd3f1b41477570dc78"),
"stage" : "Coding",
"result" : {
"cod" : "C15",
"feedback" : {
"narrativeLength" : "Adequate",
"positiveSymptomsIncluded" : "Only Positive",
"certainty" : "High"
},
"keywords" : [
"52 yr male, died of food pipe cancer, suffered pain upper abdomen, investigated,FNAC confirmed Cancer, Put on Chemotherapy, multiple cycles, died at home, had fever with chills occasionally"
]
}
},
{
"physician" : ObjectId("5739a6bd3f1b41477570dc79"),
"stage" : "Coding",
"result" : {
"cod" : "C15",
"feedback" : {
"narrativeLength" : "Inadequate",
"positiveSymptomsIncluded" : "Only Positive",
"certainty" : "High"
},
"keywords" : [
"severe pain abdomen, ultrasonography revealed food pipe cancer, chemotherapy given, died"
]
}
}
],
"__v" : 2
}
a oto kod, który napisałem, aby wykonać żądanie POST
var MongoClient = require("mongodb").MongoClient;
var request = require("request");
var assert = require("assert");
var cmeprovisioning= "mongodb://localhost:27017/cmeprovisioning";
MongoClient.connect(cmeprovisioning, function(err, db) {
assert.equal(null, err);
var count=0;
console.log("Connected to cmeprovisioning");
var cursor =db.collection("rhimeReport").find(
{"study":"cod","phase":"mansa2","recordStudy":"codstudy",
"recordPhase":"mansa2","_state":"CodingComplete"
});
cursor.each(function(err, doc) {
assert.equal(err, null);
if (doc != null) {
console.dir(doc);
count=count+1;
request({url: "http://cme.host.net:8081/cme-provisioning/update",
method: "POST",json: true,
headers: {"content-type": "application/json"},
json: doc
},function(e,r,b){
console.log("POST Error "+count+" "+e)
console.log("POST Response "+count+" "+r)
console.log("POST BODY "+count+" "+b)
});
} else {
console.log("Some Error : "+err)
}
});
});
Próbowałem również użyć formatu JSON.stringify (doc), ale nadal otrzymałem błąd Invalid JSON. Czy istnieje sposób, w jaki mogę użyć dokumentu mongo zwróconego przez zapytanie find i przekonwertować go na JSON, aby wysłać żądanie POST.
Myślę, że te ObjectID sprawiają, że jest to nieprawidłowy dokument JSON.
Odpowiedzi:
1 dla odpowiedzi № 1Spróbuj tego,
var cursor =db.collection("rhimeReport").find(
{"study":"cod","phase":"mansa2","recordStudy":"codstudy",
"recordPhase":"mansa2","_state":"CodingComplete"});
cursor.toString();
......
Mam nadzieję, że to pomoże.
1 dla odpowiedzi nr 2
musisz przekonwertować identyfikator obiektu na łańcuch, tj.
var result = {
"_id": ObjectId("5739a6bf3f1b41477570dc89"),
"taskCount": 2,
"study": "cod"
};
//now conver to string
result=result._id.toString();
//now you can use the result