我正在使用Mongoose在Node.js中查询Mongo,使用以下命令:
var qw = {
'permissions': {'ownerID':req.user._id}
};
landmarkSchema.find(qw, function(err, lm) {
console.log(lm);
});
req.user._id = "53baf81408802a00002166b8"
但没有任何回报。我在Mongo终端尝试了相同的查询。
我的数据对象构造为:
{
"_id" : ObjectId("53bb736dbe211d0000f01837"),
"name" : "and",
"permissions" : {
"ownerID" : "53baf81408802a00002166b8",
"admins" : [ ],
"viewers" : [ ]
},
"__v" : 0
}
我还尝试将ownerID存储为Mongo ObjectID,即ObjectId("53baf81408802a00002166b8")
,但这似乎也不起作用。
答案 0 :(得分:2)
使用点符号:
var qw = {
'permissions.ownerID': req.user._id
};
如上所述,您的上述查询正在搜索permissions
属性与您的对象完全匹配的文档,这意味着它只有ownerID
属性,但该属性没有其他属性。