Как получить удостоверение личности объекта после того, как он сохранил его в Pimongo?

StackOverflow https://stackoverflow.com/questions/3089067

  •  28-09-2019
  •  | 
  •  

Вопрос

У меня есть вопрос новичка 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})
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top