arrays - 如何获取嵌套内部列表组的整个列表,并为它们添加排序和限制。MongoDB查询
问题描述
我在 MongoDB 集合中有一个名为 EvaluationsGroup 的对象的以下模型:
{
"_id" : "5fecfb83d61ae459df1bceda",
"Status" : "noDataFound",
"Evaluations" : [
{
"EvaluatedAt" : ISODate("2020-12-30T22:13:21.168Z"),
"ReferenceValue" : 2.0
}
{
"EvaluatedAt" : ISODate("2020-12-30T22:13:15.168Z"),
"ReferenceValue" : 3.0,
(... several other properties)
}
]
}
我想要做的是Evaluations
模糊地获取所有'EvaluationsGroups'的所有内部的整个列表,按EvaluatedAt
日期对它们进行排序,并限制分页的结果。
我将如何在 mongo 中进行这样的查询?
解决方案
$project
显示必填字段$unwind
解构Evaluations
数组$replaceRoot
替换根中的对象$sort
按EvaluatedAt
日期降序排列$skip
分页文件数$limit
文件数
let page = 0;
let limit = 10;
let skip = page*limit;
db.collection.aggregate([
{
$project: {
_id: 0,
Evaluations: 1
}
},
{ $unwind: "$Evaluations" },
{ $replaceRoot: { newRoot: "$Evaluations" } },
{ $sort: { EvaluatedAt: -1 } },
{ $skip: skip },
{ $limit: limit }
])
推荐阅读
- for-loop - 使用批处理for循环,如何从元素列表中选择由空格分隔的多个名称组成的元素?
- python - 使用 scipy.interpolate 进行具有固定起点和终点的平滑样条近似
- c++ - Boost_NO_SYSTEM_PATHS 无法识别
- ios - 如何使用列表中的 GMAIL API 获取发件人个人资料信息,即电子邮件、用户名和图片
- java - Spring向数据库添加数据,BindingResult结果hasErrors
- reactjs - componentDidUpdate 内部的无限循环错误....为什么?
- jenkins - 具有强制阶段的 Jenkins 声明式管道
- c++ - 遍历预处理器定义并处理它们
- flutter - 如何解决此错误“方法'/'在null上被调用”
- javascript - 如何在打字稿中显示具有多维数组的json