如何提取PyMongo中UpdateOne操作的属性信息?
从PyMongo UpdateOne操作列表中提取信息
我手里有一个已经准备好的PyMongo UpdateOne操作列表,示例如下:
print(type(to_load[0])) > <class 'pymongo.operations.UpdateOne'> print(to_load[0]) > UpdateOne({'id': XXX}, {'$set': {'name': 'YYY'}}, True, None, None, None)
我想从中提取信息,比如获取所有受影响的'id'值列表[XXX, ...],尝试了下面的写法但无效,请问有没有可行的方法?
for record in to_load: print(record['filter'])
UpdateOne对象不是字典,不能用下标['filter']访问属性,得用属性访问符直接调用对应的属性:
- 获取过滤条件(即你要的
{'id': XXX}):使用record.filter - 获取更新操作内容:使用
record.update - 获取upsert设置:使用
record.upsert
要提取所有'id'值,可使用如下代码:
id_list = [record.filter['id'] for record in to_load]
如果不确定对象的属性名,可通过dir()函数查看该对象的所有可用属性和方法:
print(dir(to_load[0]))
执行后就能看到filter、update等属性名称。
内容的提问来源于stack exchange,提问作者OJT
相关产品推荐
相关产品推荐

