使用正则表达式

时间:2015-04-27 04:35:21

标签: regex mongodb

我在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 })

任何人都可以帮我解决我的错误吗?

1 个答案:

答案 0 :(得分:0)

您正在尝试根据正则表达式从数组中提取字符串。问题是你的数组由地图/对象/任何东西组成,所以毫不奇怪你不能拉任何东西。这就是您看到1 matched和0 modifies的原因。

db.testcaseCollection.update({
  "name" : "testcase2"
}, {
   $pull : {
      steps: { spec1: {$regex: 'postPet' }}
   }
})

请查看有关如何使用$pull

的文档