猫鼬 对数组字段值的最后一个元素的查询结果进行排序



我有一个类似这样的猫鼬模式:

const chatRoomSchema = new mongoose.Schema({
roomid: String,
eventid: String,
users: [String],
messages: [
{
userid: String,
message: String,
createdOn: { type: Date, default: Date.now },
},
],
});

我想查询所有的聊天室,但我想根据收到最新聊天消息的聊天室进行排序(聊天室先有最后一条createdOn消息(。

我知道我可以使用根据第一条消息的createdOn进行排序

Chatroom.find().sort({ "messages.0.createdOn": -1 })

但我怎么能在最后一条信息上排序呢?

Chatroom.find().sort({ "messages.createdOn": -1 })

试试这个。

最新更新