MongoDB:使用分页查询嵌套数组
假设我收集了以下文档:MongoDB:使用分页查询嵌套数组,mongodb,nosql,Mongodb,Nosql,假设我收集了以下文档: { _id, profile: {...}, arrayProp1: [....], arrayProp2: [....], arrayProp3: [....], ... } arrayPropX数组中的对象数可能会变大,至少有数千个。所以我需要使用分页,问题是什么是最好的方法 例如如何返回: 指定id的arrayProp1中的元素总数 指定id的arrayProp1中位置Y的X个元素 ? 同上,但在arrayProp1元素的某些字段上使用过滤
{
_id,
profile: {...},
arrayProp1: [....],
arrayProp2: [....],
arrayProp3: [....],
...
}
arrayPropX数组中的对象数可能会变大,至少有数千个。所以我需要使用分页,问题是什么是最好的方法
例如如何返回:
谢谢,它工作得很好,但如果我需要在切片之前对数组进行排序怎么办?如果没有$unwind first,似乎是不可能的?@这是正确的,您必须
$unwind
-排序内部数组是我希望在MongoDB中具有的功能之一
db.collection.aggregate([
{
$match: { _id: queryId }
},
{
$project: {
_id: 1,
size: { $size: "$arrayProp1" }
}
}
])
db.collection.aggregate([
{
$match: { _id: queryId }
},
{
$project: {
_id: 1,
sliced: { $slice: ["$arrayProp1", Yposition, Xelements] }
}
}
])