假设我有这个架构
class Room {
member_ids: [String]
owner_ids: [String]
}
和两个虚拟填充members
and 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
阶段之前?)。有没有办法实现这一点,而无需事后手动删除字段?谢谢你。