mongodb -从结果数组中排除特定字段

gk7wooem  于 2022-11-28  发布在  Go
关注(0)|答案(1)|浏览(285)

下面是合作伙伴关系集合,其中有用户1和2参与。其中一个用户是当前登录的用户req.user._id,我列出了该用户的合作伙伴。

{
    "_id": {
        "$oid": "6381697ddddbdb42b4682fb7"
    },
    "users": [{
        "$oid": "user_one_id"
    }, {
        "$oid": "user_two_id"
    }],
}

我从PartnerModel中获取作为合作伙伴的用户的字段(不包括req.user._id)。

let partners =
  await userPartnerModel.find({
    users: { $in: [req.user._id] }
  }).sort({ createdAt: -1 })
    .populate({ 
      path: 'users', 
      select: 'profilePic firstName', 
      model: userModel 
    })

res.status(200).json(partners)

问题是合作伙伴结果还包括req.user。
我现在得到的结果是:

{
      "users":[
         {
            "firstName":"User One",
            "profilePic":"https://image.jpg",
            "_id":"63729a9a73f736476cbdd0cc"
         },
         {
            "firstName":"User Two",
            "profilePic":"https://image2.jpg",
            "_id":"63728ae473f736476cbdd0be"
         }

但结果不应包括req.user._id,即“用户1”

nfeuvbwi

nfeuvbwi1#

嘿,你可以使用select函数只允许你想要的字段。默认情况下,_id字段是允许的,你可以通过添加-id来禁止它。对于你的情况,你可以使用下面的查询:

let partners =
  await userPartnerModel.find({
    users: { $in: [req.user._id] }
  }).sort({ createdAt: -1 })
    .populate({ 
      path: 'users', 
      select: 'profilePic firstName -_id', 
      model: userModel 
    })

相关问题