【发布时间】:2020-12-15 01:31:59
【问题描述】:
我正在使用 mongoengine 使用 ODM 查询数据并将数据保存到我的 mongo 数据库。 我有一个文档,其属性名为 interfaces,其中包含另一个字典作为其值。
示例:
attr1: value
attr2: value
interfaces:
{
interface1: {'ip': 1.2.3.4, test:test2}
interface2: {'ip': 2.3.4.5, test:test3}
.
.
.
}
每个文档在interfaces属性下可以有数百个接口。
我正在寻找一种方法来测试“1.2.3.4”是否在文档的任何接口下。
我发现使用document.objects() 并像这样遍历所有记录:
records = document.objects()
for key in records.interfaces.keys():
if records.interfaces[key]['ip'] == “1.2.3.4”:
dosomething
但最终该集合将包含 1000 多个文档,这似乎是一个缓慢的解决方案。 有什么方法可以直接从 mongodb 查询?
感谢您的帮助!
【问题讨论】:
标签: python database mongodb pymongo mongoengine