使用嵌入式JSON对象的Mongo find()查询不返回数据

时间:2014-07-08 13:53:04

标签: json node.js mongodb mongoose

我正在使用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"),但这似乎也不起作用。

1 个答案:

答案 0 :(得分:2)

使用点符号:

 var qw = {
    'permissions.ownerID': req.user._id
 };

如上所述,您的上述查询正在搜索permissions属性与您的对象完全匹配的文档,这意味着它只有ownerID属性,但该属性没有其他属性。