如何在 MongoDB 中聚合 $slice 以从嵌套数组中获取精确位置的元素?
mongodbdatabasebig data analytics更新于 2026/1/13 13:52:17
您可以使用聚合框架来实现此目的。首先,我们创建一个包含文档的集合 −
>db.exactPositionDemo.insertOne({"StudentName":"John","StudentScores":[78,98,56,45,89]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd29a1c345990cee87fd883")
}
以下查询借助 find() 方法显示集合中的所有文档 −
> db.exactPositionDemo.find().pretty();
这将产生以下输出 −
{
"_id" : ObjectId("5cd29a1c345990cee87fd883"),
"StudentName" : "John",
"StudentScores" : [
78,
98,
56,
45,
89
]
}
案例 1 − 查询聚合 $slice 以获取精确位置的元素,其值为 0,1 −
> db.exactPositionDemo.aggregate([ { "$project": { "StudentScores": { "$slice": ["$StudentScores",0,1] } }} ]);
将产生以下输出 −
{ "_id" : ObjectId("5cd29a1c345990cee87fd883"), "StudentScores" : [ 78 ] }
案例 2 − 查询聚合 $slice 以获取位于精确位置且值为 1,1 的元素 −
> db.exactPositionDemo.aggregate([ { "$project": { "StudentScores": { "$slice": ["$StudentScores",1,1] } }} ]);
这将产生以下输出 −
{ "_id" : ObjectId("5cd29a1c345990cee87fd883"), "StudentScores" : [ 98 ] }

