0

我在 mongo 有一个基地,在那里我有一个看起来像这样的集合:

 array (
'list' => 
 array (
  0 => '51af6f4c4b6061e10a000164',
  1 => '51af6f4c4b6061e10a000165',
 ),
 'user_id' => '522d6a134b6061b67100000f',

)

在列表数组中,我列出了所有 id 的用户是朋友的列表。问题是我必须用另一个更改基础中的所有 id。假设我想在数组列表中用 51af6f4c4b6061e10a000166 更改所有 51af6f4c4b6061e10a000165。我怎样才能在所有列表的整个集合中做到这一点。

任何想法都可以提供帮助!

与mysql相比,我真的不太习惯mongo。

4

1 回答 1

1

在此处查看文档:DOC或此处DOC

您需要做的是使用位置运算符和 multy:true 选项进行更新:类似于:

db.collection.update({list:'51af6f4c4b6061e10a000165'},{$set:{'list.$':'51af6f4c4b6061e10a000166'}},{ multi: true })

仅适用于两个限制,首先,如果新 id 已经在列表中,它将在列表中出现两次。如果旧的 id 在列表中是多次的,这只会改变第一次出现。

于 2013-09-11T14:03:05.917 回答