为了账号安全,请及时绑定邮箱和手机立即绑定

确定mongoengine文档是否与代码中的原始pymongo查询匹配

确定mongoengine文档是否与代码中的原始pymongo查询匹配

30秒到达战场 2021-03-02 14:25:39
假设我有一个pymongo查询清单和一个文件。该文档可以被一个或多个pymongo查询匹配(或不匹配)。例如这是我的文件:> db.my_collection.findOne(){    "EmbeddedDoc" : {        "values" : [            NumberLong(1),            NumberLong(2)        ]    },    "_id" : ObjectId("515407bbc118555eea07fea5"),    "some_other_value" : "Val",    "my_id" : NumberLong(42),}这是原始pymongo查询的列表(与一些ints列表相关):list_of_queries = [    ({'EmbeddedDoc.values': 2}, [1, 3, 5])     ({'some_other_value': 'H2G2'}, [6, 5])    ({'some_other_value': 'Val'}, [10, 4])    ({'my_id': {'$gte': 256}}, [3, 13, 2])]对于与特定文档匹配的查询,我想知道整数列表的串联。在上述情况下,[1, 3, 5, 10, 4]到目前为止,我所做的就是每次查询数据库(这里是MyCollection继承mongoengine的方法Document):def get_list_of_int(self):    ints = []    for query, list_of_ints in list_of_queries:         if bool(MyCollection.objects(my_id=self.my_id, __raw__=query)):             ints.extend(list_of_ints)    return ints但是,这每次都会查询数据库。即使快速(在上有一个索引my_id),我仍在想是否有一种方法可以确定Document实例是否与代码中的特定查询匹配,而不是查询db(查询列表可以任意长)。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信