我在 python 中使用 mongoengine。为了声明我的模型,我有以下代码:
class Subject(Document):
uri = StringField(required=True,unique=True)
resources = ListField(ReferenceField('Resource'))
meta = {
'indexes': [
{'fields': ['uri'], 'unique': True},
],
}
我想检查索引是否按预期创建/工作,所以我去了 mongo 并执行:
db.subject.find({uri:' http://dbpedia.org/resource/Napoleon '}).explain()
该命令的输出如下:
{
"cursor" : "BtreeCursor uri_1",
"isMultiKey" : false,
"n" : 1,
"nscannedObjects" : 1,
"nscanned" : 1,
"nscannedObjectsAllPlans" : 1,
"nscannedAllPlans" : 1,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 0,
"indexBounds" : {
"uri" : [
[
"http://dbpedia.org/resource/Napoleon",
"http://dbpedia.org/resource/Napoleon"
]
]
},
"server" : "ioannis-linux:27017",
"filterSet" : false
}
我无法理解查看 mongodb 文档,这就是为什么我们在 . 中获得相同 uri 索引的两个条目。indexBounds
这是什么意思?这发生在我查找的任何 URI 上。
更新
不确定这是否相关,但我有另一个域类也使用与索引相同的 URI..( Resource
)