我正在尝试使查询工作以从单个架构中获取分组数据。架构看起来像那样
Message: {
sender: objectId,
recipient: objectId,
message: String
posted: Date
}
每个文档都是一条简单的信息。对话将是对消息的简单查询。现在,我想与最后一条消息进行最后的X次对话。
Model.find({
'$or': [
{
sender: userId
},
{
recipient: userId
}
]
}, fields, {
skip: (_page - 1) * PAGE_SIZE,
limit: PAGE_SIZE
}, _cb);
我如何应用分组?
谢谢。
答案 0 :(得分:0)
会说聚合符合这个法案。请记住$skip + $limit
Sequence Optimization:
var pipeline = [
{
"$match": {
"$or": [
{ "sender": userId },
{ "recipient": userId }
]
}
},
{ "$sort": { "posted": -1 } },
{ "$limit": PAGE_SIZE },
{ "$skip": (_page - 1) * PAGE_SIZE }
]
Model.aggregate(pipeline, _cb);