Mongo Filter版本号大于1.18.10

时间:2016-04-25 17:38:39

标签: regex mongodb

我想运行一个mongo查询,该查询只返回版本字段大于< 1.18.10'

的文档。

相关:Regular expression for version number bigger than 1.18.10

1 个答案:

答案 0 :(得分:1)

要执行这样的复杂匹配,您需要使用$ regex或$ where运算符:https://docs.mongodb.org/manual/reference/operator/query/#evaluation

与$ regex一起使用的正则表达式将是这样的:

^(([2-9]|[0-9]{2,}).*|1\.(([0-9]{3,}|[2-9][0-9]|19).*|18\.([0-9]{3,}|[2-9][0-9]|1[1-9])))

核心逻辑就是这一部分:

[2-9]|[0-9]{2,}|(1\.<check_next_part_here>)

在整个过程中重复几次但稍微调整一下。这匹配大于1的任何东西:

  • [2-9](数字2到9)
  • [0-9]{2,}(两个以上的数字:10个以上)

或1然后继续检查下一部分:

  • 1\.(匹配1.