2017-01-02 44 views
0

我正在嘗試根據以下給出的id來獲取文檔詳細信息。但是,除了空數組之外,我沒有收到任何數據。代碼的進一步調試指向下面的代碼中的JSON.parse(query)語句的解析問題。無法弄清楚爲什麼它不能正確解析對象。無法根據來自nodejs的mongo文檔的Id字段搜索數據

var table = dbase.collection(name); 
     var qfld = JSON.parse(fields);  
     var qobj = JSON.parse(query); 
     console.log('query : ' + query + ' and fileds ' + fields + ' qid ' + qobj._id + ' device id ' + qobj.deviceid); 
     table.find(qobj,qfld).toArray(function(err,result){ 
      if (err) reject(err); 
      else 
       resolve(result); 
     }); 

我想發送查詢對象到上述函數如下ccaid是在形式「5486ab .... ce6」。

var ccid = new require('mongodb').ObjectID(ccaid); 
query = '{\"_id\": '+ ccid + '}; 
+0

檢查您對此的報價。看起來不正確'{\「_ id \」:'+ ccid +'}; (您不會以報價結尾,您以括號結尾。) –

+0

您可以從您的收藏中發佈樣本文檔嗎? – felix

+0

對不起,字符串就像這個'{\「_ id \」:'+ ccid +'}';並且文檔如下 –

回答

0

這應該工作

var table = dbase.collection(name); 
var qfld = JSON.parse(fields); 

var ccid = new require('mongodb').ObjectID(ccaid);  
var qobj = {_id: ccaid }; 
console.log('query : ' + JSON.stringify(qobj) + ' and fileds ' + fields + ' qid ' + qobj._id + ' device id ' + qobj.deviceid); 
table.find(qobj,qfld).toArray(function(err,result){ 
     if (err) 
     reject(err); 
     else 
     resolve(result); 
}); 
+0

謝謝。它正在工作。 –

相關問題