首页 > 解决方案 > 查询 mongoDB 中的嵌入文档

问题描述

我正在尝试查询具有用户子文档的组文档。

但我只想要属于用户的子文档,

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

查看查询结果,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);
});

标签: mongodbmongoosesubdocument

解决方案


推荐阅读