聚合管道中的$skip阶段用于跳过输入中的指定数量的文档,并将其余文档传递到管道中的下一阶段。 这对于在查询中实现分页以及控制管道中后续阶段作的文档子集特别有用。
语法
$skip阶段的语法非常简单。 它接受单个参数,这是要跳过的文档数。
{
$skip: <number>
}
参数
DESCRIPTION | |
---|---|
number |
将剩余文档传递到下一阶段之前要跳过的文档数。 |
示例
示例 1:跳过集合中的文档
假设我们有一个名为存储的集合,其中包含表示各种存储详细信息的文档。 若要跳过前 2 个文档并返回其余文档,可以使用以下聚合管道:
db.stores.aggregate([
{ $skip: 2 }
])
示例输出
[
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
"store": {
"name": "Downtown Store",
"promotionEvents": ["Summer Sale", "Black Friday", "Holiday Deals"]
}
},
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c6",
"store": {
"name": "Uptown Store",
"promotionEvents": ["Back to School", "Winter Sale"]
}
}
]
示例 2:跳过文档,然后限制结果
若要跳过前 2 个文档,然后将结果限制为接下来的 3 个文档,可以将$skip与$limit组合在一起:
db.stores.aggregate([
{ $skip: 2 },
{ $limit: 3 }
])
示例 3:跳过更复杂的管道中的文档
假设你想要跳过第一个促销事件,然后投影特定存储的剩余事件:
db.stores.aggregate([
{ $match: { "store.storeId": "12345" } },
{ $unwind: "$store.promotionEvents" },
{ $skip: 1 },
{ $project: { "store.promotionEvents": 1, _id: 0 } }
])
相关内容
- 查看从 MongoDB 迁移到 Azure Cosmos DB for MongoDB (vCore) 的选项
- 通过创建帐户开始。