mongodb - 列表中的mongo查询正则表达式
问题描述
我有一个包含列表字段的集合。列表字段包含 URL。我想搜索该字段并提取该模式出现在列表中至少一个元素中的所有文档。这是我的第一次尝试。
query = collection.find({
'third_party_urls' : {'$in' : ['/.woff/']}
})
这将返回零个文档,但我知道在许多情况下条件是正确的。MongoDB 的文档指出我不能在列表中使用 $regex 运算符,但我可以使用 js 对象正则表达式。根据 MongoDB 和一个关于 js regex 的快速谷歌搜索,我写了一个封装在 // 中的模式。所以我相信我正确使用了 js 正则表达式,但没有运气。有任何想法吗?
解决方案
假设我们有一个名为so
. 我们在 mongo shell 中使用以下命令插入几个文档:
db.so.insert({urls: ["apple", "banana"]})
db.so.insert({urls: ["apple2", "banana2"]})
db.so.insert({urls: ["apple3", "banana3", "cherry"]})
db.so.insert({urls: ["mongo"]})
然后我们可以找到所有至少包含一个apple
以发出以下元素的元素的文档:
db.so.find({urls: /^apple.*/})
或者
db.so.find({urls: {$regex: "^apple.*"}})
结果如下所示:
{ "_id" : ObjectId("5ef6829b25a20c5a694d8522"), "urls" : [ "apple", "banana" ] }
{ "_id" : ObjectId("5ef682a525a20c5a694d8523"), "urls" : [ "apple2", "banana2" ] }
{ "_id" : ObjectId("5ef682d425a20c5a694d8524"), "urls" : [ "apple3", "banana3", "cherry" ] }
推荐阅读
- python-3.x - 如何在直方图中指定 y 值?
- php - 未捕获的错误:调用成员函数
- xamarin - XAMARIN FORM:打开firebase通知时如何以编程方式打开页面并向下滚动并突出显示listview的viewcell
- go - goroutines/channel - 不退出 w/o ctlr-c
- ios - 使用 UIPageviewController 进行故事板本地化
- visual-studio-2010 - Visual Studio 2010 String.Format 异常
- locust - Locust:如何在两种不同类型的用户之间共享数据
- python - 在推理过程中正确使用 tf.while_loop?
- java - 在 focframwork GUI Table 中,一些单元格显示为空,直到我打开一行进行编辑并返回。由于“maxCharaters”属性
- python-3.x - BeautifulSoup 文件名提示