pymongo SONManipulator find_one,填充的值很少

时间:2014-05-22 16:16:49

标签: python pymongo

使用Custom Types in PyMongo,能够插入记录。我的自定义对象有5个字段。我需要一个find_one方法,它根据我的自定义对象中填充的字段进行搜索。假设我创建了一个自定义对象,并且只填充了2个字段(尽管是唯一值)。我需要使用这个对象和操纵器搜索MongoDB。我该如何实现这一目标?上面链接中提到的示例使用不带任何参数的find_one()。

我在下面试过,但没有返回数据

self.my_collection.find_one({'custom': custom})
#Of course I could specify the complete query. Below fetched the data.
self.my_collection.find_one({'custom.prop1': custom.prop1,'custom.prop2': custom.prop2})

截至目前,我已经在下面努力实现同样的目标:

def get_one_by_specified_properties(self, custom):
        query_str_map = dict()
        for attr in custom_object_properties_names_as_list():
            if custom.__getattribute__(attr):
                query_str_map.update({'custom.' + attr: custom.__getattribute__(attr)})
        document = self.my_collection.find_one(query_str_map)
        return document['custom'] if document else None

0 个答案:

没有答案