要匹配和删除元素,请使用MongoDB $pullAll。首先让我们创建一个包含文档的集合-
> db.removeElementsDemo.insertOne({"ListOfNames":["Mike","Sam","David","Carol"]}); { "acknowledged" : true, "insertedId" : ObjectId("5e071e5a25ddae1f53b62203") }
以下是在find()方法的帮助下显示集合中所有文档的查询-
> db.removeElementsDemo.find().pretty();
这将产生以下输出-
{ "_id" : ObjectId("5e071e5a25ddae1f53b62203"), "ListOfNames" : [ "Mike", "Sam", "David", "Carol" ] }
这是匹配并从数组中删除元素的查询-
> db.removeElementsDemo.update( ... { }, ... { ... $pullAll: ... { ... "ListOfNames": ["Carol"] ... } ... } ... ); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
以下是在find()方法的帮助下显示集合中所有文档的查询-
> db.removeElementsDemo.find().pretty();
这将产生以下输出。上面,我们只删除了一个值-
{ "_id" : ObjectId("5e071e5a25ddae1f53b62203"), "ListOfNames" : [ "Mike", "Sam", "David" ] }