2016-07-01 48 views
1

サーバ上のNodeJS.Butのリクエスト本体として、findクエリから返されたMongoDBドキュメントを使用して投稿リクエストを作成しようとしています。エラーが発生しました:無効なJSON。以下は、私がMongoDBドキュメントをJSONオブジェクトに変換する方法

{ 
    "_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 
} 

をPOSTしようとしていると、ここで私はまた、JSON.stringify(DOC)を使用してみました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) 
         } 
        }); 
}); 

を作るために書いたコードがある文書ですが、まだ無効なJSONエラーが表示されます。検索クエリで返されたmongoドキュメントを使用してPOSTリクエストを行うためにJSONに変換する方法はありますか?

私はこれらのObjectIDが無効なJSONドキュメントになっていると思います。

+0

https://docs.mongodb.com/manual/reference/method/ObjectId.toString/ – MegaMind

答えて

0

あなたの問題は、あなたのオブジェクトIDで、 は、次のように試してみてください。

{ 
    "_id": "5739a6bf3f1b41477570dc89", 
    "taskCount": 2, 
    "study": "cod", 
    "phase": "mansa2", 
    "rhimeTaskId": "5739a6bec4567f6e737fd3db", 
    "recordId": "5726f3cfc4567f6e737fc3ab", 
    "recordStudy": "codstudy", 
    "recordPhase": "mansa2", 
    "recordLanguage": "Punjabi", 
    "recordScript": "Latin", 
    "_state": "CodingComplete", 
    "tasks": [{ 
     "physician": "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": "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 
} 
+0

私は各として、POSTリクエストを行う前に、プログラムでこれらのオブジェクトIDを変換するにはどうすればよいですドキュメントは検索クエリによって返されます。 –

+0

POSTリクエストを送信する前に、好きなようにデータを調理し、POSTリクエストに送信します。 – Subburaj

1

var cursor =db.collection('rhimeReport').find(
     {"study":"cod","phase":"mansa2","recordStudy":"codstudy", 
     "recordPhase":"mansa2","_state":"CodingComplete"}); 

cursor.toString(); 
...... 

・ホープこのヘルプ、これを試してみてください。

1

オブジェクトIDを文字列ieに変換する必要があります。

var result = { 
 
    "_id": ObjectId("5739a6bf3f1b41477570dc89"), 
 
    "taskCount": 2, 
 
    "study": "cod" 
 
}; 
 
//now conver to string 
 
result=result._id.toString(); 
 
//now you can use the result

関連する問題