查询mongoDB中的嵌入式文档

时间:2018-07-03 17:34:20

标签: mongodb mongoose subdocument

我正在尝试查询包含用户个子文档的 Group 文档。

但是我只希望属于用户的子文档

但是我也正在获取其他用户的数据。

查看查询结果的UserStatus字段,其中只有一个属于用户。

查询结果-

[
  {
    "_id": "5b1bcc12d5cdbf2cf78f2133",
    "name": "First group ever",
    "users": [
      {
        userId: 1,
        "userStatus": "I"
      },
      {
        userId: 2,
        "userStatus": "I"
      }
    ]
  }
]

Group.js-

const GroupSchema = mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    users: [{
        userId: {
            type: mongoose.SchemaTypes.ObjectId,
            ref: 'users',
            required: true
        },
        userStatus: {
            type: String,
            required: true
        }
    }]
})  

查询-

Group.find({
    "users": {
          $elemMatch: {
                userId: req.params.id, 
                $or: [{
                     userStatus: "I"
                }, {
                     userStatus: "A"
                }]
          }
        }
     }, "_id name users.userStatus",
     function (err, groups) {
        if (err)
            res.send(err)
        res.json(groups);
});

0 个答案:

没有答案