如何使用具有多个选项的正则表达式搜索mongo?
根据mongo documentation我可以做到,
db.collection.find( { field: { $regex: 'acme.*corp', $options: 'i' } } )
如何使用多个选项执行此操作,例如i
和m
?
喜欢$options: 'im'
?
或者$options: ['i', 'm']
?
答案 0 :(得分:5)
这是正确的语法(很可能基于我的观察,如下所列):
$options: 'im'
带有说明的regex options列表
数据强>:
db.a.insert({"a" : "hello Sam" })
db.a.insert({"a" : "hello sam" })
db.a.insert({"a" : "hello\nSam" })
db.a.insert({"a" : "hello\nsam" })
db.a.insert({"a" : "hello pam" })
db.a.insert({"a" : "hello Pam" })
db.a.insert({"a" : "hello\nPam" })
db.a.insert({"a" : "hello\npam" })
<强>代码强>:
db.a.find({a : {$regex : 'o.+sam', $options : 'is'}}) // Sam, sam, \nSam, \nsam
db.a.find({a : {$regex : 'o.+sam', $options : 'i'}}) // Sam, sam,
db.a.find({a : {$regex : 'o.+sam', $options : 's'}}) // sam, \nsam
db.a.find({a : {$regex : 'o.+sam', $options : ['i']}}) // sam
db.a.find({a : {$regex : 'o.+sam', $options : ['i', 's']}}) // sam
db.a.find({a : {$regex : 'o.+sam', $options : ['s']}}) // sam