如何在MongoDB中删除数组元素?
要在MongoDB中删除数组元素,可以使用$pull和$in运算符。语法如下:
db.yourCollectionName.update({}, {$pull:{yourFirstArrayName:{$in:["yourValue"]},yourSecondArrayName:"yourValue"}},
{multi:true}
);
为了理解上述语法,让我们创建一个带有文档的集合。用于创建包含文档的集合的查询如下:
>db.removeArrayElement.insertOne({"StudentName":"Larry","StudentCoreSubject":["MongoDB","MySQL","SQL Server","Java"],"StudentFavouriteTeacher":["John","Marry","Carol"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6ec9c46fd07954a4890688")
}
在find()方法的帮助下显示集合中的所有文档。查询如下:
> db.removeArrayElement.find().pretty();
以下是输出:
{ "_id" : ObjectId("5c6ec9c46fd07954a4890688"),
"StudentName" : "Larry",
"StudentCoreSubject" : [
"MongoDB",
"MySQL",
"SQL Server",
"Java"
],
"StudentFavouriteTeacher" : [
"John",
"Marry",
"Carol"
]
}
这是删除MongoDB中的数组元素的查询:
> db.removeArrayElement.update({},... {$pull:{StudentCoreSubject:{$in:["Java"]},StudentFavouriteTeacher:"Marry"}},
... {multi:true}
... );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
我们从上方的第一个数组(“ StudentCoreSubject”)获得了“ Java”元素,从第二个数组(“ StudentFavouriteTeacher”)获得了第二个值“ Marry”元素。
让我们再次显示集合中的文档,以检查两个元素是否已删除。查询如下:
> db.removeArrayElement.find().pretty();
以下是输出:
{ "_id" : ObjectId("5c6ec9c46fd07954a4890688"),
"StudentName" : "Larry",
"StudentCoreSubject" : [
"MongoDB",
"MySQL",
"SQL Server"
],
"StudentFavouriteTeacher" : [
"John",
"Carol"
]
}
查看上面的示例输出,第一个数组中没有“ Java”元素(“ StudentCoreSubject”),第二个数组中没有“ Marry”元素(“ StudentFavouriteTeacher”)。因此,我们已成功将它们从集合中删除。
以上是 如何在MongoDB中删除数组元素? 的全部内容, 来源链接: utcz.com/z/341226.html