Mongo で複数行の配列に複数の項目を追加したいと考えています。これどうやってするの?
私はこれから始めたい:
{'x': 'h', arr: [1,2,3] }
{'x': 'h', arr: [1,3] }
配列 [6,8] を追加します。ここで、x は 'h' に等しくなります。
{'x': 'h', arr: [1,2,3,6,8] }
{'x': 'h', arr: [1,6,8] }
Mongo で複数行の配列に複数の項目を追加したいと考えています。これどうやってするの?
私はこれから始めたい:
{'x': 'h', arr: [1,2,3] }
{'x': 'h', arr: [1,3] }
配列 [6,8] を追加します。ここで、x は 'h' に等しくなります。
{'x': 'h', arr: [1,2,3,6,8] }
{'x': 'h', arr: [1,6,8] }
あなたが探しているのは $pushAll 演算子だと思います。ここを見てください:
http://docs.mongodb.org/manual/reference/operator/pushAll/#pushall
という名前の MongoDB コレクションと という名前yourCollection
のレコードがあるx
場合、サブ配列を次のように更新します。
db.test.update( {"name":"x"}, {"$pushAll" : {arr : [1, 2, 3]}} )
ここで重要なキーワードは$pushAllです。これを使用して、単一のレコード属性内の配列にアイテムを追加できます。
複数のレコードを更新する場合はtrue
、4番目の引数として更新関数に渡すことが重要です。
db.test.update( {"name": "x"}, {"$pushAll": {"arr": [1, 2, 3]}}, false, true)
update()のMongoDBシェル構文によると:
db.collection.update( criteria, objNew, upsert, multi )