我试图在非常简单的情况下应用索引过滤器集。但这是行不通的。即使是非常简单的情况。
我创建了一个简单的集合,每个条目的外观如下:
def parse(self, response):
hxs = Selector(response)
links = hxs.xpath("//p")
items = []
for linkk in links:
item = ErcessassignmentItem()
item["link"] = linkk.xpath("//a/@href").extract()
items.append(item)
else: # after for loop is finished
# either return items
# or print link in items here without returning
for link in items: # take one link after another
print link # and print it in one line each
我添加了索引:
{
"_id" : ObjectId,
"SetId" : 324,
"id_internal" : "BBU1P0ALB",
"SetName" : "Name",
(...)
}
最后,我准备了如下查询:
{
"SetName" : 1,
"id_internal": 1
}
解释说indexFilterSet:false,如预期的那样(以及Collscan作为获胜计划的阶段)。 终于我准备好了:
db.TestCollection.find( { SetName: "Name" } );
现在重试查询后(find({SetName:“ Name”}))我希望解释会说indexFilterSet:true,然后在索引上赢得普通点。但这并没有发生。显然:db.runCommand({planCacheListFilters:“ TestCollection”})确认已添加我的过滤器。
可以帮助我配置查询形状吗?还是还有另一个问题?
谢谢您的帮助!