我错误地将正则表达式模式存储为MongoDB中的字段名称。现在我想删除它们。根据关于mongoDB.org的this问题讨论,应该可以有任何字符,但是"。"并且该字段不得以" $"。
开头然而,当我尝试使用" \"找到包含正则表达式的字段时我可以找到它(通过使用额外的反斜杠来在字符串中转义它)。
> db.test.find({"(slot(maskin\\w+?|machine\\w+?))":{$exists:true}}).count()
> 10975
但我无法使用" $ unset"
删除它> db.texts.update({"(slot(maskin\\w+?|machine\\w+?))":{$exists:true}},{$unset:{"(slot(maskin\\w+?|machine\\w+?))":""}})
> WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
以下是试用版的示例文档:
doc = {"(slot(maskin\w+?|machine\w+?))":1, "text": "bla vla yle rodman slotmachine."}