猫鼬如何从填充中排除_id
Posted
技术标签:
【中文标题】猫鼬如何从填充中排除_id【英文标题】:mongoose How to exclude _id from populated 【发布时间】:2017-12-06 09:24:10 【问题描述】:我正在我的角色文档中填充 _group
return this.find(query, '_group': 1, 'name':1, 'description': 1 )
.populate('_group', ['name', 'description'])
.sort( createdAt: -1 )
...
我还得到了 _group 的 _id
"_id":"5959ef7db9938a0600f05eb2",
"_group":
"_id":"5959ef7db9938a0600f05eae",
"name":"GroupA",
"description":"Description GroupA"
,
"name":"manager",
"description":"can R group, can RW user",
我怎样才能摆脱 _group._id ?
我试过了:
return this.find(query, '_group': 1, 'name':1, '_group._id':0, '_id':0 )
但它会引发错误:投影不能混合包含和排除。
和
return this.find(query, '_group': 1, 'name':1, '_id':0, '_id':0
仅删除角色._id
感谢反馈
【问题讨论】:
在填充 select: '-_id' 中使用选择 也可以使用 query.only 但已弃用 mongoosejs.com/docs/2.7.x/docs/query.html#only 【参考方案1】:return this.find(query, '_group': 1, 'name':1, 'description': 1 ).
populate(
path: '_group',
select: 'name description -_id',
).sort( createdAt: -1 )
在您的示例中使用此逻辑
【讨论】:
非常感谢...但是对于文档 ID 使用减号而不是 0 是多么奇怪的方式...以上是关于猫鼬如何从填充中排除_id的主要内容,如果未能解决你的问题,请参考以下文章