Метод get mongoengine не работает для идентификатора со строковым значением - PullRequest
0 голосов
/ 14 февраля 2020

Я указал mongoengine класс модели с полем _id как StringField:

class Store(DynamicDocument):
    _id = StringField(primary_key=True, min_length=1)

И теперь, когда я запрашиваю документ по полю _id, я получаю документ правильно:

get by _id

Я могу получить его также по pk:

enter image description here

, но Я не могу получить его по id:

get by id

Как вы видите на первом экране, поля id и pk успешно инициализированы. Так что я просто не могу понять, почему mongoengine ведет себя так. Что я делаю не так?

1 Ответ

1 голос
/ 18 февраля 2020

Попробуйте объявить ваш "_id" как "id":

class Store(DynamicDocument):
    id = StringField(primary_key=True, min_length=1)
...