如何在 python 中使用 mongoengine 在 ListField 上添加索引?

How to add index on ListField with mongoengine in python?

我想在 ListField.Here 上添加索引是我的代码:

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"}),但是如何在评论上添加索引?

我相信它对列表的工作方式相同,因此

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)