如何通过 MongoDB 中的索引删除数组元素?
您可以使用以下两个步骤按索引删除数组元素-
第一步如下-
db.yourCollectionName.update({}, {$unset : {"yourArrayFieldName.yourIndexValue" : 1 }});上面的语法将在“yourIndexValue”的位置放置一个空值。之后,您需要从数组字段中提取空值以从数组元素中删除。
第二步如下-
db.yourCollectionName.update({}, {$pull : {"yourArrayFieldName" : null}});为了实现语法,让我们用文档创建一个集合。使用文档创建集合的查询如下-
> db.removeArrayElementByItsIndexDemo.insertOne({"InstructorName":"David",
"InstructorAge":28,"InstructorSubject":["MongoDB","MySQL","Java","SQL Server","PL/SQL"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8abbfc6cea1f28b7aa0803")
}在find()方法的帮助下显示集合中的所有文档。查询如下-
> db.removeArrayElementByItsIndexDemo.find().pretty();
以下是输出-
{
"_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
"InstructorName" : "David",
"InstructorAge" : 28,
"InstructorSubject" : [
"MongoDB",
"MySQL",
"Java",
"SQL Server",
"PL/SQL"
]
}这是通过索引删除数组元素的查询。
步骤1-查询如下-
> db.removeArrayElementByItsIndexDemo.update({}, {$unset : {"InstructorSubject.2" : 1 }});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })步骤2-查询如下-
> db.removeArrayElementByItsIndexDemo.update({}, {$pull : {"InstructorSubject" : null}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })让我们检查数组元素“Java”是否被删除。查询如下-
> db.removeArrayElementByItsIndexDemo.find().pretty();
以下是输出-
{
"_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
"InstructorName" : "David",
"InstructorAge" : 28,
"InstructorSubject" : [
"MongoDB",
"MySQL",
"SQL Server",
"PL/SQL"
]
}查看示例输出,数组元素“Java”已被完全删除。
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话