Я запускаю приведенный ниже запрос в оболочке mon go и получаю нужные результаты.
db.messagelist.find({userID : ObjectId("5e39a9c107357487435d5849")});
Вывод
{ "_id" : ObjectId("5e39a9c1073574eb1a5d584a"), "message" : "I am at some place", "messageType" : "0", "messageLocation" : "0", "userID" : ObjectId("5e39a9c107357487435d5849"), "timeStamp" : "'1580837313163'" }
Но когда я создаю маршрут для него выглядит следующим образом, он возвращает пустые результаты:
router.get('/messagelist/:id', function (req, res) {
var db = req.db;
var collection = db.get('messagelist');
var id = req.params.id;
//console.log("id is: "+id);
//collection.find({userID : 'ObjectId("'+id+'")'});
collection.find({"userID" : id}, {}, function (e, docs) {
docs = JSON.stringify(docs);
console.log("docs: "+docs); //empty
res.send(docs);
});
});
Что-то не так с синтаксисом ?! Любые предложения, пожалуйста.
Редактировать:
Этот запрос также работает. Таким образом, синтаксис в этом случае правильный. Я не знаю, в чем проблема с userID.
router.get('/messagelist/:id', function (req, res) {
var db = req.db;
var collection = db.get('messagelist');
var id = req.params.id;
//console.log("id is: "+id);
//db.messagelist.find({userID : 'ObjectId("'+id+'")'});
collection.findOne({_id : id}, function(e, docs) {
console.log("docs: "+docs);
docs = JSON.stringify(docs);
console.log("docs: "+docs);
res.send(docs);
});
});
Все параметры работают, за исключением случая userID. Это странно. это даже не ключевое слово.