Как получить удостоверение личности объекта после того, как он сохранил его в Pimongo?
Вопрос
У меня есть вопрос новичка Pimongo: если collection
это Pymongo Коллекция и я использую его, чтобы сохранить объект с
obj = {'foo': 'bar'}
collection.insert(obj)
Затем MongoDB автоматически генерирует _id
поле для obj
; один раз может подтвердить это с
print obj
Что дает что -то вроде
{'foo': 'bar', '_id': ObjectId('4c2fea1d289c7d837e000000')}
Мой вопрос: как я могу получить это _id
Возвращаясь таким образом, чтобы я мог использовать это?
Например, если я хочу удалить obj
из базы данных, я бы подумал, что я хотел бы сделать что-то вроде
collection.remove(obj['_id'])
Но когда я попробую это, я получаю сообщение
TypeError: 'ObjectId' object is unsubscriptable.
Что происходит?
Решение
Вставьте возвращает _ID вставленного документа.
и удалить удалить на основе _id, поэтому попробуйте что-то вроде:
doc_id = db.test.insert({"foo": 1})
db.test.remove(doc_id)
Другие советы
Вам просто нужно пройти remove
дикта, как и ты insert
. Анкет Итак, чтобы удалить документ на основе его _id
ценность, сделай что -то вроде:
collection.remove({'_id': ObjectId('4c2fea1d289c7d837e000000')})
Вы можете просто пройти obj
.
Для удаления объекта из документа вы должны упомянуть условие, поскольку вы можете указать «_id» для документа ........
_id = db.test.insert({"foo": "test"})
db.test.remove({"_id":_id})