0

假设我有这个架构

class Room {
  member_ids: [String]
  owner_ids: [String]
}

和两个虚拟填充membersand owners,它们映射到User模式(自定义路径,不是_id

我成功地用这个填充了数据:

return this.roomModel
      .findOne({ id: roomId })
      .select('-_id -__v')
      .populate('members owners', '-_id -__v')
      .exec();

它现在返回

{
    "member_ids": [
        "1",
        "2"
    ],
    "owner_ids": [
        "1"
    ],
    "owners": [
        {
            "id": "1",
            "name": "User 1"
        }
    ],
    "members": [
        {
            "id": "1",
            "name": "User 1"
        },
        {
            "id": "2",
            "name": "User 2"
        }
    ]
}

问题是,我不想member_ids并且owner_ids以我的回应告终。我试过使用select('-member_ids -owner_ids')但是响应没有填充数据了(我猜这个select阶段发生在populate阶段之前?)。有没有办法实现这一点,而无需事后手动删除字段?谢谢你。

4

0 回答 0