2016-04-25 53 views
0

我在蒙戈的对象(文件)与下面结构更新数组元素中蒙戈对象位置

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

现在我想通过交换2 第二和3 RD元件改变array1作为[5, 10, 2, 11]数组。

我该怎么做?

回答

0

那么,有很多方法来洗牌数组元素。你需要弄清楚哪一个最有效。

例如在你的情况下,修复客户端上的数组索引并向服务器发出一个更新请求会容易得多。

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 
    ] 
} 

但是,如果你要的答案@Saleem做实验,看$position操作

+0

谢谢,它解决我的问题。但是没有其他方法可以做到这一点,而不是设置完整的数组,只需改变数组元素的位置并保存完整的对象? – Dau