我在mongoDB中有以下内容:
{
"_id" : ObjectId("552f4bf5344fbaee0f62ccef"),
"name" : "testcase2",
"steps" : [
{
"spec1" : "postPet"
},
{
"spec2" : "putPet"
},
{
"spec2" : "getPetsHistory"
}
]
}
我想从steps数组中提取一个元素。我只能使用以下值:" testcase2"," postPet"。
我在更新查询中使用了正则表达式,如以下链接中所述:https://gist.github.com/gatesvp/1021164
我的查询是:
db.testcaseCollection.update({"name" : "testcase3"}, {$pull : {"steps" : {$regex: 'postPet'}}})
结果是:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
任何人都可以帮我解决我的错误吗?
答案 0 :(得分:0)
您正在尝试根据正则表达式从数组中提取字符串。问题是你的数组由地图/对象/任何东西组成,所以毫不奇怪你不能拉任何东西。这就是您看到1 matched
和0 modifies
的原因。
db.testcaseCollection.update({
"name" : "testcase2"
}, {
$pull : {
steps: { spec1: {$regex: 'postPet' }}
}
})
请查看有关如何使用$pull
的文档