更新mongo对象中的数组元素位置

时间:2016-04-25 10:41:30

标签: mongodb mongoose

我在mongo中有一个具有以下结构的对象(文档)

{
    'key1' : 'value1',
    'key2' : 'value2',
    'array1' : [5, 2, 10, 11]
}

现在我想通过交换2 nd 和3 rd 元素来将array1更改为[5, 10, 2, 11]

我该怎么做?

1 个答案:

答案 0 :(得分:0)

好吧,有很多方法可以改组数组元素。你需要弄清楚哪一个最有效率。

e.g。在您的情况下,在客户端修复数组索引并向服务器发出单个更新请求要容易得多。

db.collection.update(
   {key1:"value1", key2:"value2"},
   {$set:{array1:[5,10,2,11]}}
)

在上述查询的帮助下,您的结果文档将是

{ 
    "_id" : ObjectId("571dfcdce6d693e88c38242f"), 
    "key1" : "value1", 
    "key2" : "value2", 
    "array1" : [
        5.0, 
        10.0, 
        2.0, 
        11.0
    ]
}

但是,如果您想进行实验,请参阅$position运算符