Mongodb根据下标获取数组元素
总结一下MongoDB中通过下标获取数组元素的方法。
假设现在有一个score集合,里面有如下一些文档:
{
"name" : "Jerry",
"score" : [98, 84, 62, 95, 100]
},
{
"name" : "Tom",
"score" : [62, 53, 78, 42, 65]
},
...
现在要查询Jerry的记录,并获取其score的值。
一、$arrayElemAt获取单个元素
假如我们现在只需要第3次分数,即只取出score数组的第2个元素:
db.score.aggregate([
{
$match : {
name : "Jerry"
}
},
{
$project : {
name : 1,
a : {
$arrayElemAt : ["$a", 2]
}
}
}
])
查询结果:
{
"_id" : ObjectId("605c454ebafbe07685f751a8"),
"name" : "Jerry",
"score" : 62
}
二、$slice获取多个连续元素
假如我们现在需要第3、4、5次的分数,即只取出score数组的第2、3、