【问题标题】:MongoDB - return whole parent dosument and single array element matching criteriaMongoDB - 返回整个父文档和单个数组元素匹配条件
【发布时间】:2014-09-18 17:57:26
【问题描述】:

我有以下 MongoDB 方案:

{

    local            : {
        email        : String, // user's email
        name         : String, // user's name

        rooms        : [{name: String, password: String}]
    }
}

我必须按房间名称 (rooms.name) 执行查询,并作为结果返回整个父文档和只有一个数组元素,符合条件(rooms.name == 'room name') 房间名称在整个数据库中是唯一的,所以我不必担心这一点。

我目前取得的成就是:

db.users.find({"local.rooms.name": "myroomname"}, {_id: 0, 'local.rooms.$': 1})

但是上面的查询只返回匹配条件的数组元素,而不是它的父文档。

我错过了什么?

【问题讨论】:

    标签: arrays mongodb


    【解决方案1】:

    您必须明确包含其他字段。

    db.users.findOne({"local.rooms.name":"myroomname"},{_id:0, "local.rooms.$":1, "local.email":1, "local.name":1});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-01
      • 2011-12-19
      • 2019-02-16
      • 1970-01-01
      • 2018-10-23
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多