MongoEngine, указывающий идентификатор

#python #mongodb #mongoengine #nosql

#python #mongodb #mongoengine #nosql

Вопрос:

У меня возникли проблемы с получением MongoEngine для принятия определенных идентификаторов. Кажется, что он абсолютно настроен использовать (и только использовать) ObjectId s. Я более чем способен генерировать свои собственные идентификаторы в этом случае, спасибо.

Как я могу заставить MongoEngine работать нормально?

Комментарии:

1. У меня возникли проблемы с ответом на ваш вопрос, потому что вы не показали никакого кода, указывающего на проблему.

Ответ №1:

Мне удалось решить эту проблему, добавив в класс следующее:

 id = mongoengine.StringField(required=True, primary_key=True)
  

Не уверен, что это «правильный» способ выполнения действий, поэтому я оставлю это без ответа на некоторое время.

Комментарии:

1. В чем была ваша проблема. Что вы добавили, чтобы это исправить? Как бы кто-то, кроме вас, понял вашу проблему? Вы хотите сказать, что раньше у вас вообще не было никакого поля, действующего как идентификатор, и вы не могли понять, почему mongoengine не разрешал вам использовать поле ad hoc id?

2. Я мог бы указать поле id, даже если бы оно не было указано, но оно не принимало бы идентификатор string / unicode, только ObjectId .

3. @NoahMcIlraith была ли эта проблема решена в более поздних версиях mongoengine? В настоящее время я использую 0.9.0 и сталкиваюсь с той же проблемой, однако у меня это сработало.