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]