mongodb根据指定索引获取数组中的值

1、$slice

{$slice: [array, n]}              // 从开始位置到n索引的位置截取
{$slice: [array, position, n]}    // 从position索引位置开始到n索引位置

例:只可惜获取的还是数组,还没有找到办法直接向java一样获取单个值

{$slice : [[1, 2, 3], 1, 1]}
结果:[2]

{$slice : [[1, 2, 3], -2]}
结果:[2, 3]

{$slice : [[1, 2, 3], 15, 2]}
结果:[]

{$slice : [[1, 2, 3], -15, 2]}
结果:[1, 2]

如果解析单个字段,可以进行拆包操作,如下

db.collection.aggregate([
  {$project : {test : {$slice:[['1', '2', '3'], 1]}}},
  { $unwind : "$test" }
])

结果:
{
    "test" : "1"
}

如大虾有解决办法,请不要吝啬 -_-

猜你喜欢

转载自blog.csdn.net/u014259503/article/details/84787359