【问题标题】:Mongo find() query with embedded JSON object not returning data带有嵌入式 JSON 对象的 Mongo find() 查询不返回数据
【发布时间】:2014-08-29 07:07:49
【问题描述】:

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

【问题讨论】:

    标签: json node.js mongodb mongoose


    【解决方案1】:

    使用点符号:

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-15
      • 2021-07-04
      • 2016-12-28
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多