Mongo 版本 - v3.4 基于我的最后一个问题 - lookup with condition in mongoose
我的查询在第 1 页上工作。但在第二页上,它给出了空结果。
const casestudies = await CaseStudy.aggregate([{
$lookup: {
from: "categories",
localField: "category_id",
foreignField: "_id",
as: "category_id"
}
},
{
$project: {
"updated_at": 0,
"category_id.updated_at": 0
}
},
{
$lookup: {
from: "bookmarks",
localField: "_id",
foreignField: "type",
as: "bookmarks"
}
},
{
$addFields: {
bookmarks: {
$filter: {
input: "$bookmarks",
cond: { $eq: ["$$this.user_id", req.user ? objectId(req.user._id) : ''] }
}
}
}
},
{ $sort: { "publish_date": -1 } },
{ $limit: pageSize },
{ $skip: (page - 1) * pageSize }
]);
我的查询有什么问题。 请帮帮我。
答案 0 :(得分:0)
按照@Ashh 问题的建议,按照 sort
、$skip
、$limit
的顺序。
所以正确的查询应该是。
{ $sort: { "publish_date": -1 } },
{ $skip: (page - 1) * pageSize },
{ $limit: pageSize }