Mongodb PyMongo-查找包含唯一键的文档并删除该键及其内容
我有一个包含许多文档的集合,其中一个文档可能包含也可能不包含需要删除的唯一密钥: 例如:Mongodb PyMongo-查找包含唯一键的文档并删除该键及其内容,mongodb,pymongo,Mongodb,Pymongo,我有一个包含许多文档的集合,其中一个文档可能包含也可能不包含需要删除的唯一密钥: 例如: DOC-X{ OBJ1{}, OBJ2{ unique12: {}, unique34: {}, unique56: {}, }, OBJ3{} } 在python中,如何从名为DOC-X的文档中的OBJ2中仅删除unique34? 不知道该对象是否存在,但如果存在,则需要将其删除。 这是对象中的对象,而不是数组 我试过:
DOC-X{
OBJ1{},
OBJ2{
unique12: {},
unique34: {},
unique56: {},
},
OBJ3{}
}
在python中,如何从名为DOC-X的文档中的OBJ2中仅删除unique34?
不知道该对象是否存在,但如果存在,则需要将其删除。
这是对象中的对象,而不是数组
我试过:
coll = database["COLLECTION"]
toDelete = "unique34"
coll.find_one_and_delete({["OBJ2"][toDelete]: 1})
没有成功 您可以使用
尝试:
coll.update_one({},{“$unset”:{“DOC-X.OBJ2.unique34”:“}})
结果:
Before
{'DOC-X': {'OBJ1': {},
'OBJ2': {'unique12': {}, 'unique34': {}, 'unique56': {}},
'OBJ3': {}},
'_id': ObjectId('5eb31a54ce9c5701ce4ef7fd')}
After
{'DOC-X': {'OBJ1': {}, 'OBJ2': {'unique12': {}, 'unique56': {}}, 'OBJ3': {}},
'_id': ObjectId('5eb31a54ce9c5701ce4ef7fd')}
你可以使用
尝试:
coll.update_one({},{“$unset”:{“DOC-X.OBJ2.unique34”:“}})
结果:
Before
{'DOC-X': {'OBJ1': {},
'OBJ2': {'unique12': {}, 'unique34': {}, 'unique56': {}},
'OBJ3': {}},
'_id': ObjectId('5eb31a54ce9c5701ce4ef7fd')}
After
{'DOC-X': {'OBJ1': {}, 'OBJ2': {'unique12': {}, 'unique56': {}}, 'OBJ3': {}},
'_id': ObjectId('5eb31a54ce9c5701ce4ef7fd')}