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]