此查询中的 $sort 方法无法正常工作,我想列出聚合,它们应该根据我定义的 $sort 查询列出
const newConverSation = await Messenger.Messenger.aggregate([
{
$sort: { 'createdAt': -1 }
},
{ $match: {
users: mongoose.Types.ObjectId(req.body.userid)}},
{
$group: {
_id: { $setUnion: "$users" },
message: { $first: "$$ROOT" },
},
},
])
有时排序正确,有时不排序,随机...
--------------------------------为另一个问题编辑
这是我的 toJSON 方法,它通常可以正常工作
messengerScheme.methods.toJSON = function(){
const messenger = this
const messengerObject = messenger.toObject()
messengerObject.createdAt = moment(messengerObject.createdAt).fromNow()
return messengerObject
}
当我直接查询我的模型时,我得到 createdAt : "7 hours"
,但是当我用这样的聚合查询它时,我得到了 createdAt:“2021-05-17T11:34:47.475Z”,所以 toJSON 方法在我的聚合