MongoDB – ドキュメントからフィールドを削除する方法
このMongoDBの記事では、ドキュメントと配列からフィールドを削除する方法を説明します。
1.ドキュメントからフィールドを削除する
ドキュメントのサンプルで、 “affLink”フィールドを削除したいとします。
domain.json
{
"__id" : 1,
"domain" : "mkyong.com",
"affLink" : "abc"
}
すべてのドキュメントからフィールドを削除するには、 `{multi:true}`を設定します。そうでなければ、最初に一致したドキュメントのフィールドだけが削除されます。
db.domain.update({},{$unset: {affLink:1}},{multi: true});
出力
domain.json
{
"__id" : 1,
"domain" : "mkyong.com"
}
2.配列からフィールドを削除する
MongoDB 2.6より前のバージョンでは、配列からフィールドを削除する公式な関数はまだありません。それを修正するには、スクリプトを書く必要があります:
person.json
{
__id: 1,
name: "mkyong",
addresses:[ {
street: "99 The Rock Street",
city: "Boston",
state: "MA",
zip: "66666"
},
{
street: "88 WWF Street",
city: "Boston",
state: "MA",
zip: "77777"
}
]}
ドキュメントをループし、フィールド「状態」をアレイから1つずつ削除します。
db.person.find({}).forEach(function(doc) {
var address = doc.addresses;
for(var i = 0; i < address.length; ++i) {
var x = address[i];
delete (x["state"]);
}
db.person.save(doc);
});
出力
person.json
{
__id: 1,
name: "mkyong",
addresses:[ {
street: "99 The Rock Street",
city: "Boston",
zip: "66666"
},
{
street: "88 WWF Street",
city: "Boston",
zip: "77777"
}
]}
参考文献
: $unset].
http://docs.mongodb.org/manual/tutorial/modify-documents/
[MongoDB :
ドキュメントの変更]。
http://docs.mongodb.org/manual/tutorial/query-documents/#read-operations-arrays
[MongoDB
: Query document, Array]
リンク://タグ/配列/[配列]リンク://タグ/mongodb/[mongodb]
フィールドを削除