MongoDB 正则表达式
2020-07-02 12:23
579 查看
示例
MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式。
> db.col.find() { "_id" : ObjectId("56c6bbef64799370c0ef358a"), "x" : "hello world", "tags" : [ "a", "b" ] } { "_id" : ObjectId("56c6bbfe64799370c0ef358b"), "x" : "hi world", "tags" : [ "b" ] } { "_id" : ObjectId("56c6bc9e64799370c0ef358c"), "x" : "nothing" }
> db.col.find({x:/world/}) { "_id" : ObjectId("56c6bbfe64799370c0ef358b"), "x" : "hi world", "tags" : [ "b" ] } { "_id" : ObjectId("56c6bbef64799370c0ef358a"), "x" : "hello world", "tags" : [ "a", "b" ] }
> db.col.find({x:{$regex:"world"}}) { "_id" : ObjectId("56c6bbfe64799370c0ef358b"), "x" : "hi world", "tags" : [ "b" ] } { "_id" : ObjectId("56c6bbef64799370c0ef358a"), "x" : "hello world", "tags" : [ "a", "b" ] }
上面后两种操作是等价的。
不区分大小写
> db.col.find({x:{$regex:"world", $options:"$i"}}) { "_id" : ObjectId("56c6bd9964799370c0ef358d"), "x" : "hihi WORLD" } { "_id" : ObjectId("56c6bbfe64799370c0ef358b"), "x" : "hi world", "tags" : [ "b" ] } { "_id" : ObjectId("56c6bbef64799370c0ef358a"), "x" : "hello world", "tags" : [ "a", "b" ] }
or
> db.col.find({x:/world/i}) { "_id" : ObjectId("56c6bd9964799370c0ef358d"), "x" : "hihi WORLD" } { "_id" : ObjectId("56c6bbfe64799370c0ef358b"), "x" : "hi world", "tags" : [ "b" ] } { "_id" : ObjectId("56c6bbef64799370c0ef358a"), "x" : "hello world", "tags" : [ "a", "b" ] }
数组使用正则表达式
> db.col.find({tags:/b/}) { "_id" : ObjectId("56c6bbef64799370c0ef358a"), "x" : "hello world", "tags" : [ "a", "b" ] } { "_id" : ObjectId("56c6bbfe64799370c0ef358b"), "x" : "hi world", "tags" : [ "b" ] } { "_id" : ObjectId("56c6bedf64799370c0ef358e"), "tags" : [ "abc", "m" ] }
可见数组中包含字符‘b’的都找出来了(包括“abc”)。
正则中包含变量
需要用eval将组合的字符串进行转换
> v="world" world > db.col.find({x:eval("/" + v + "/i")}) { "_id" : ObjectId("56c6bd9964799370c0ef358d"), "x" : "hihi WORLD" } { "_id" : ObjectId("56c6bbfe64799370c0ef358b"), "x" : "hi world", "tags" : [ "b" ] } { "_id" : ObjectId("56c6bbef64799370c0ef358a"), "x" : "hello world", "tags" : [ "a", "b" ] }
相关文章推荐
- Node.js使用MongoDB模糊查询,正则表达式嵌入参数
- MongoDB利用正则表达式查询(pymongo实现)
- 【MongoDB学习笔记16】MongoDB的查询:find中的正则表达式
- Golang+Mgo 实现对于MongoDB的正则表达式查找
- MongoDB可以利用正则表达式进行模糊查询
- MongoDB:20-MongoDB- 正则表达式
- MongoDB正则表达式及应用
- 正则表达式
- C++ boost 正则表达式用法
- 正则表达式语法
- Java正则表达式
- iOS一些正则表达式的使用(转载自别的技术贴)
- DayDayUP_Python自学教程[12]_Python正则表达式
- c++ 正则表达式
- 正则表达式中的\b
- 使用正则表达式构造定制的HTML5输入框
- sed及正则表达式随手记之一:用以提取stat命令结果的数字权限形式
- 正则表达式整理
- 常用正则表达式用法
- [ 正则表达式 ] 正则升级!