我对Mongo很新,但我有SQL经验,所以我试图围绕这个概念。我试图根据子文档的结果删除整个文档。
文档/行看起来接近以下内容:
{
"_id" : ObjectId("5a7e04e3809303035bf6437a"),
"receivedTime" : ISODate("2018-02-09T20:30:27.118Z"),
"status" : "NORMALIZED",
"originalHeaders" : {
"name" : "My Alert Name",
"description" : null,
"version" : 0,
"severity" : 3
},
"partOfIncident" : false
}
我想删除所有名称为“我的警报名称”的文档。我通过从bash脚本调用它来尝试类似下面的内容。这是执行变量替换后的命令:
++ mongo admin -u admin -p password --eval 'db.getSiblingDB("database_name").collection.deleteMany({originalHeaders: {name: "I ALERT EVERYTHING"} })'
调用后,没有删除任何内容。关于如何实现我的最终目标的任何指示将不胜感激。我想可以通过查找运行并保存所有节点_id来运行以进行删除,但这听起来非常低效。
答案 0 :(得分:1)
访问嵌套字段时,您需要使用dot
表示法。
db.collection_name.deleteMany( { "originalHeaders.name" : "My Alert Name" } )
这将删除originalHeaders.name
= "My Alert Name"