私たちの文書 'tags
配列のタグの名前を変更したいと思います。コレクション内のすべてのタグa
をc
に変更します。私は、タグユニークを維持する必要がありMongoDB:同時に配列フィールドに追加して削除する
[ { _id: …, tags: ['a', 'b', 'c'] },
{ _id: …, tags: ['a', 'b'] },
{ _id: …, tags: ['b', 'c', 'd'] } ]
:文書はこのような何かを見て。これは、最初の文書は、タグc
二回含むことになりますので、このようなアップデートは、動作しません、意味:
db.docs.update(
{ tags: 'a' },
{
$pull: { 'a' },
$addToSet: { 'c' }
}
)
をしかし、これは与えられる:だから
db.docs.update(
{ tags: 'a' },
{ $set: { 'tags.$': 'c' } }
)
、私が代わりにこれを試してみましたMongoError: Cannot update 'tags' and 'tags' at the same time
。
1つの更新でタグの名前を変更する可能性はありますか?
[mongoと同時にプルとaddtosetの可能な複製](http://stackoverflow.com/questions/24300148/pull-and-addtoset-at-the-same-time-with-mongo) – Yogesh