我有一个包含许多文档的集合,其中一个文档可能包含或不包含需要删除的唯一键。
例如:
DOC-X{
OBJ1{},
OBJ2{
unique12: {},
unique34: {},
unique56: {},
},
OBJ3{}
}
在python中,我如何从名为DOC-X的文档中的OBJ2中只删除唯一的34?
我已经尝试过。
coll = database["COLLECTION"]
toDelete = "unique34"
coll.find_one_and_delete({["OBJ2"][toDelete]: 1})
没有成功
您可以使用 $unset operator
试试吧
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')}