要排除数组类型字段值,请在MongoDB中使用delete()。让我们创建一个包含文档的集合-
> db.demo464.insertOne( ... { ... ... "id" : "101", ... "details": [ ... { ... Name:"Chris" ... }, ... { ... Name:"David" ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e7f8832cb66ccba22cc9dda") }
在find()方法的帮助下显示集合中的所有文档-
> db.demo464.find();
这将产生以下输出-
{ "_id" : ObjectId("5e7f8832cb66ccba22cc9dda"), "id" : "101", "details" : [ { "Name" : "Chris" }, { "Name" : "David" } ] }
以下是查询以排除数组类型字段值-
> db.demo464.find({id: "101"}).forEach(function(mongoDocument) { ... ... var details = mongoDocument.details; ... for(var j = 0; j − details.length; ++j) { ... var array = details[j]; ... delete (array["Name"]); ... ... } ... db.demo464.save(mongoDocument); ... });
在find()方法的帮助下显示集合中的所有文档-
> db.demo464.find();
这将产生以下输出-
{ "_id" : ObjectId("5e7f8832cb66ccba22cc9dda"), "id" : "101", "details" : [ { }, { } ] }