MongoDB MongoEngine索引声明
我有文件MongoDB MongoEngine索引声明,mongodb,mongoengine,Mongodb,Mongoengine,我有文件 class Store(Document): store_id = IntField(required=True) items = ListField(ReferenceField(Item, required=True)) meta = { 'indexes': [ { 'fields': ['campaign_id'], 'unique': True
class Store(Document):
store_id = IntField(required=True)
items = ListField(ReferenceField(Item, required=True))
meta = {
'indexes': [
{
'fields': ['campaign_id'],
'unique': True
},
{
'fields': ['items']
}
]
}
要在项目中设置索引并存储\u id,我的配置正确吗?您的第二个索引声明看起来应该满足您的要求。但是为了确保索引确实有效,您应该使用。使用mongo shell连接到您的数据库,并执行查找查询,该查询应使用该索引,后跟
.explain()
。例如:
db.yourCollection.find({items:"someItem"}).explain();
输出将是一个包含许多字段的文档。解释每个字段的确切含义。请特别注意以下领域:
- millis所需查询的时间(毫秒)
- 间接地(自我解释)
- n返回的文档数
- nscannedObjects必须在不使用索引的情况下检查的对象数量。对于仅索引查询,该值应等于n。如果该值较高,则意味着某些文档无法被索引排除,必须手动扫描