假设我有一个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(查询列表可以任意长)。
添加回答
举报
0/150
提交
取消