Я следующий MongoEngine документMongoEngine удалить документ
{
'_id': 'some_id',
'data': 'some_data'
}
Как delete
этот документ с помощью MongoEngine?
Что я пробовал:
import my_collection
obj = my_collection.MyCol.objects.get(_id='some_id')
# obj is correctly found - let's continue
obj.delete()
# mongoengine.errors.ValidationError: 'None' is not a valid ObjectId
obj.delete('some_id')
# TypeError: delete() takes 1 positional argument but 2 were given
obj.delete(_id='some_id')
# mongoengine.errors.ValidationError: 'None' is not a valid ObjectId
- нота
Как ни странно, следующие работы прекрасно:
my_collection.MyCol.objects.delete()
# delete all documents in the collection
Но я следовал MongoEngine документы , и до сих пор не удается удалить только один конкретный ic document.
Я думаю, [что примечание] (http://docs.mongoengine.org/guide/document-instances.html#deleting-documents) есть что-то делать с этим: 'Обратите внимание, что это будет работать только в том случае, если документ существует в базе данных и имеет действительный id.' – alecxe
@alecxe mmm Я думал об этом, но отклонил его, потому что MongoEngine говорит, что' 'None 'не является допустимым ObjectId', 'some_id'' – Jivan
Написал текущую теорию как ответ. У вас есть пользовательский первичный ключ/поле, определенное на модели? Благодарю. – alecxe