【发布时间】:2020-02-07 14:34:22
【问题描述】:
我在 mongo shell 中运行以下查询并获得所需的结果。
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);
});
});
语法有问题吗?!请有任何建议。
编辑:
此查询也有效。所以在这种情况下语法是正确的。我不知道用户 ID 有什么问题。
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 的情况外,所有参数都有效。真奇怪。它甚至不是关键字。
【问题讨论】:
标签: javascript node.js mongoose mongodb-query