MongoDB – 配列からフィールドを削除する
MongoDB 2.6より前のバージョンでは、配列ドキュメントからフィールドを `$ unset ‘する公式の関数はありません。
1.配列ドキュメント
この記事では、 ”
countryName
“フィールドを下の配列から削除する方法を説明します。
> db.hosting.findOne(); { "__id" : 39, "domain" : "mkyong.com", "countryStat" :[ { "countryCode" : "us", "countryName" : "United States", "count" : 2170 }, { "countryCode" : "il", "countryName" : "Israel", "count" : 22 }, ]}
2.配列ドキュメントからフィールドを削除する
配列からフィールドを削除するには、次のようなスクリプトを書く必要があります:
db.hosting.find({__id: 39 }).forEach(function(doc) { var countries = doc.countryStat; for(var i = 0; i < countries.length; ++i) { var x = countries[i]; delete (x["countryName"]); } db.hosting.save(doc); });
出力
> db.hosting.findOne(); { "__id" : 39, "domain" : "mkyong.com", "countryStat" :[ { "countryCode" : "us", "count" : 2170 }, { "countryCode" : "il", "count" : 22 }, ]}
参考文献
$プルのドキュメント]。
https://jira.mongodb.org/browse/SERVER-1243
[JIRA:ポジションを使用する
演算子は配列内のすべての項目を更新する]
リンク://タグ/配列/[配列]リンク://タグ/mongodb/[mongodb]