MongoDB Regex有多种选择

xco*_*rat 4 regex mongodb

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

根据我可以做的mongo文档,

db.collection.find( { field: { $regex: 'acme.*corp', $options: 'i' } } )
Run Code Online (Sandbox Code Playgroud)

我如何使用多个选项,比如说im

喜欢$options: 'im'

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

Sal*_*ali 7

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

$options: 'im'
Run Code Online (Sandbox Code Playgroud)

带描述的正则表达式选项列表

数据:

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" })
Run Code Online (Sandbox Code Playgroud)

代码:

 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
Run Code Online (Sandbox Code Playgroud)