から一つだけの要素を引っ張る:
"userTags" : [
"foo",
"foo",
"foo",
"foo",
"moo",
"bar"
]
私は私が正しく配列にfoo
の別のインスタンスを挿入することができdb.products.update({criteriaToGetDocument}, {$push: {userTags: "foo"}}}
を実行する場合。しかし
、私はdb.products.update({criteriaToGetDocument}, {$pull: {userTags: "foo"}}}
が、それは私を残して、配列からfoo
のすべてのインスタンスを削除しない場合:
"userTags" : [
"moo",
"bar"
]
これは全くしないだろう、私は唯一の1つの項目を引っ張るしたいですそれらのすべてではなく配列。 foo
が1つだけ削除されるようにコマンドを変更するにはどうすればよいですか?ここで働くことができる$pullOnce
メソッドのいくつかの種類はありますか?
これは...非常に面倒です。 'userTags'は' {tag:(numberofinstances)} 'のオブジェクトで、必要に応じてこの数値を増減するだけですが、本当にむしろそれをやめてしまいます他のものの多くのwhooooleと! – Jascination
私はあなたに同意します。この機能は本当に便利で、ドキュメントを読まなくても$ pullのアイデアを誤解する可能性があります。しかし、モンゴの人々は、すべてのリリース中にモンゴの機能を向上させる良い仕事をしています。だから私はいつかあなたが箱からこれを見ると信じています。 P.S. - JIRAの機能に対する投票。 –
ニースの編集。タグが存在するかどうかをチェックし、それが1より大きいかどうかを確認するコマンドを提案できますか?あるいは、 'tag:{$ exists:true}'を1回の検索で見つけて、新しいタグ番号で更新する必要がありますか? – Jascination