我想运行一个mongo查询,该查询只返回版本字段大于< 1.18.10'
的文档。相关:Regular expression for version number bigger than 1.18.10
答案 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.
)