如何在 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)
我想在 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)