【发布时间】:2020-09-10 03:46:37
【问题描述】:
我有一个“聊天”猫鼬Schema,它具有以下属性:
const schema = mongoose.Schema({
...
recipient: {
type: mongoose.Types.ObjectId,
required: true,
ref: 'User',
},
sender: {
type: mongoose.Types.ObjectId,
required: true,
ref: 'User',
},
content: {
type: String,
},
...
}, {
timestamps: true,
});
一般来说,我想获取用户拥有的每个覆盖的最后一条消息。这意味着我需要提供一个用户 ID(可以存储在 sender 或 recipient 字段中)并取回用户与其他每个用户的最后一条消息(由 createdAt 表示)。
示例:
假设我有以下documents:
[
{
recipient: "One",
sender: "Two",
createdAt: ISODate("2014-01-01T08:00:00Z"),
},
{
recipient: "One",
sender: "Three",
createdAt: ISODate("2014-02-15T08:00:00Z")
},
{
recipient: "Two",
sender: "One",
createdAt: ISODate("2014-02-16T12:05:10Z")
}
]
将“One”作为输入 - Model.find(...) 的期望结果是:
[
{
recipient: "One",
sender: "Three",
createdAt: ISODate("2014-02-15T08:00:00Z")
},
{
recipient: "Two",
sender: "One",
createdAt: ISODate("2014-02-16T12:05:10Z")
}
]
【问题讨论】:
-
这能回答你的问题吗? Get distinct records values
标签: node.js mongodb mongoose nosql