Javascript 如果可能,我如何以其他方式重命名mongoose中返回的字段?

Javascript 如果可能,我如何以其他方式重命名mongoose中返回的字段?,javascript,mongodb,Javascript,Mongodb,我有一个疑问: MessageModel.find({ conversationId: { $in: ids } }) .sort({createdAt: 'ascending'}) .populate({ path: 'receiver', select: '_id' }) .populate({ path: 'sender', select: '_id' }); 收信人和发件人将返回相同的id字段?我想将_id重命名为

我有一个疑问:

MessageModel.find({ conversationId: { $in: ids } })
            .sort({createdAt: 'ascending'})
            .populate({ path: 'receiver', select: '_id' })
            .populate({ path: 'sender', select: '_id' });
收信人和发件人将返回相同的id字段?我想将_id重命名为相关的receiverId和senderId?

我建议使用而不是填充

MessageModel.aggregate({$match:{ conversationId: { $in: ids } }},
{$lookup: {
  from: 'receiver',
  localField:'receiver',
  foreignField: '_id',
  as: 'receiver'
}},
{$unwind:'$receiver'},
{$lookup: {
  from: 'sender',
  localField:'sender',
  foreignField: '_id',
  as: 'sender'
}},
{$unwind:'$sender'}

)

您必须更改存储在数据库中的名称,因此将字段_id更改为例如receiver_id和sender_id@MirzaS在模型中?正确的?我希望我可以在查询中这样做如果数据库中的字段命名为receiver\u id和sender\u id,只需在模型中更改它们,如果不更改,则需要在数据库中更改它们also@MirzaS谢谢,我很困惑。这对我来说非常有帮助,因为我会把它作为一个答案发布,这样你就可以结束你的问题了