Javascript Nodejs中的建议功能由谁负责?

Javascript Nodejs中的建议功能由谁负责?,javascript,node.js,reactjs,mongodb,mongoose,Javascript,Node.js,Reactjs,Mongodb,Mongoose,因此,我的模型用户有两个字段,看起来与此完全相同: following: [ { friendship: { type: mongoose.Schema.Types.ObjectId, ref: 'Friendship' }, user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' } } ], followers: [ { friend

因此,我的模型用户有两个字段,看起来与此完全相同:

following: [
  {
    friendship: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Friendship'
    },
    user: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'User'
    }
  }
],
followers: [
  {
    friendship: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Friendship'
    },
    user: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'User'
    }
  }
]
我的功能应该是“建议”loggedIn帐户用户遵循。这就是功能:

exports.whoToFollow = asyncHandler(async (req, res, next) => {
  const people = await User.find()
    .merge({
      _id: { $nin: req.user._id },
      followers: { $nin: { user: req.user._id } }
    })
    .select(`username avatar name`)
    .limit(6);
  res.status(200).json({ success: true, data: people });
});

合并中的第一行是避免显示loggedIn帐户,后面的那行是我遇到麻烦的地方。 它应该给我的用户我还没有遵循,但它总是显示我已经遵循的用户也,有点混乱lol

有人知道怎么解决这个问题吗?

我终于解决了!!:

exports.whoToFollow = asyncHandler(async (req, res, next) => {
  const people = await User.find()
    .merge({
      _id: { $nin: req.user._id },
      'followers.user': { $nin: req.user._id }
    })
    .select(`username avatar name`)
    .limit(6);
  res.status(200).json({ success: true, data: people });
});
我只需要使用点符号lol