MongoDb选择查询问题Whit正则表达式(开始白色和结束白色)

时间:2017-04-27 07:23:45

标签: regex mongodb mongodb-query

我需要一个正则表达式来验证这样的字符串:

1678; 1678; 1678; 1678和1; 0; 1; 1; 0; 1

我尝试使用这种模式:

db.getCollection('CollectionName').find(
    {
    "magnitude": /^[1678][1678]$/,
    "flag": /^[1][1]$/
    }
)

但它不起作用,我尝试这两个模式分开工作但不是同时工作

db.getCollection('CollectionName').find(
    {
        "magnitude": /[1678]$/,
        "flag": /[1]$/
    }
)

db.getCollection('CollectionName').find(
    {
       "magnitude": /^[1678]/,
       "flag": /^[1]/
    }
)

我在SQL中找不到像*这样的字符

我正在使用robomongo 1.0.0进行查询

我会提供任何帮助

提前致谢

1 个答案:

答案 0 :(得分:4)

如果要匹配多个;个分隔的字符串,请使用捕获组。

db.getCollection('CollectionName').find(
    {
       "magnitude": /^1678(;1678)*$/,
       "flag": /^[01](;[01])*$/
    }
)

(;1678)*匹配字符串;1678,零次或多次。

[01]匹配0 1