mongoose如何在populate时排除_id字段

3

我正在在我的角色文档中填充_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}

仅删除 role._id。
感谢反馈。

1
使用select在populate中填充{select:'-_id'}。 - Prashant Tapase
也可以使用 query.only,但它已被弃用。http://mongoosejs.com/docs/2.7.x/docs/query.html#only - Arpit Solanki
1个回答

6
return this.find(query, {'_group': 1, 'name':1, 'description': 1} ).
    populate({
        path: '_group',
        select: 'name description -_id',
      }).sort({ createdAt: -1 })

在你的示例中使用这个逻辑。


非常感谢... 但是使用减号而不是0作为文档ID的方式有些奇怪... - user762579

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接