如何使用具有多个选项的正则表达式在 mongo 中搜索?

按照 mongo documentation 我可以做的,

db.collection.find( { field: { $regex: 'acme.*corp', $options: 'i' } } )

我如何使用多个选项执行此操作,例如 im

$options: 'im'

或者 $options: ['i', 'm']

最佳答案

正确的语法是这样的(很可能基于我的观察,如下所列):

$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

关于regex - 具有多个选项的 MongoDB 正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20085738/

10-09 20:22