我正在尝试使用与以下内容类似的文档查询数据库。
{
"_id":"5b9bd1b947c7471038399a39",
"subdir":"ge\\pt02\\kr02_20180824\\kr02_2018091log\\0010796ab5",
}
如何从ge\\pt02\\kr02
我尝试了许多不同的方法, 例如:
{"subdir": {"$regex": "pt02\\kr02*"}}
但是我不知道如何准备正确的过滤器:
答案 0 :(得分:2)
问题在于您需要转义斜线。
这是一个有效的示例:
db.test1.insert({"subdir":"ge\\pt02\\kr02_20180824\\k2_2018091log\\0010796ab5"})
db.test1.find({"subdir": { $regex: "^ge\\\\pt02\\\\kr02"}})
打印输出:
{ "_id" : ObjectId("5ba28194fbb45cb9f7c58b18"), "subdir" : "ge\\pt02\\kr02_20180824\\kr02_2018091log\\0010796ab5" }
答案 1 :(得分:1)
我们需要在此处转义反斜杠。同样,由于只想选择以该模式开头的文档,因此需要将正则表达式分组为括号,并在该分组的前面加上插入符号。这为我们提供了以下正则表达式:
let pattern = "^(ge\\\\pt02\\\\kr02)";
{"subdir": {"$regex": pattern}}