nat*_*ila 1 regex mongodb nosql pymongo mongodb-query
mongodb中有一些数据:
{'name': 'bob', age: 12}
{'name': 'sam': age: 34}
{'name': 'byaelle': age: 22}
Run Code Online (Sandbox Code Playgroud)
如果我想获取名称的数据包括am
我可以使用
{'name': {'$regex': 'am'}}
Run Code Online (Sandbox Code Playgroud)
但是,如何才能获取名称数据am?
当然你可以反过来$not:
db.collection.find({ "name": { "$not": /am/ } })
Run Code Online (Sandbox Code Playgroud)
但是因为它是一个$regex你可以这样做:
db.collection.find({ "name": /^((?!am).)*$/ })
Run Code Online (Sandbox Code Playgroud)
要么
db.collection.find({ "name": { "$regex": "^((?!am).)*$", "$options": "gm" } })
Run Code Online (Sandbox Code Playgroud)
如果您的字符串是以这种方式形成的,请确保内容匹配多行.
要排除多个片段,可以使用表达式将它们分开|.例如,要排除包含"bo"或"am"的单词:
db.collection.find({ "name": { "$regex": "^((?!bo|am).)*$", "$options": "gm" } })
Run Code Online (Sandbox Code Playgroud)
或者使用接受正则表达式的$nin运算符("not" $in):
db.collection.find({ "name": { "$nin": [/bo/,/am/] } })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1557 次 |
| 最近记录: |