Как добавить индекс на ListField с mongoengine в Python? - PullRequest
0 голосов
/ 10 мая 2019

Я хочу добавить индекс в ListField. Вот мой код:

class Post(Document):

    meta = {"indexs":"testcomments.comment_id"}

    _id = StringField()
    txt = StringField()
    testcomments = EmbeddedDocumentField(Comment)
    comments = ListField(EmbeddedDocumentField(Comment))

class Comment(EmbeddedDocument):

    comment = StringField()
    comment_id = StringField()
    ...

...


Я знаю, как добавить индекс в EmbeddedDocumentField (meta = {"indexs":"testcomments.comment_id"}), но как добавить индекс для комментариев?

1 Ответ

1 голос
/ 10 мая 2019

Я полагаю, что для списка это будет работать так же, поэтому

meta = {
"indexes": [
    "testcomments.comment_id",
    "comments.comment_id",    # or simply 'comments' if you want a multikey index
    ]
}

Обратите внимание, что вы можете проверить индексы, создаваемые с помощью

col = Page._get_collection()
c.index_information()

Если вы используете форму dict для определения индексов, например: meta = {'indexes': [{'fields': ['comments.comment_id']}}, у вас может быть больше детализации в определении индекса (и синтаксис ближе к pymongo / mongodb)

...