【发布时间】:2015-02-23 09:05:10
【问题描述】:
我知道索引交集,但从文档中我不清楚以下方案是否有效:
我的文档彼此非常不同,都在一个集合中。每个文档“模式”都有一个或多个具有不同值的实例,可能有数十万个值。我使用哈希值来识别记录架构,然后使用其他字段来搜索特定文档。
例如,我在集合中获得了以下条目:
{
type: "ABC",
details: { model: "14Q3", manufacturer: "M1 Corporation" },
stock: [ { size: "M", qty: 50 } ],
category: "clothing"
},
{
item: "ABC",
details: { model: "14Q3", manufacturer: "ABC Company" },
stock: [ { size: "S", qty: 5 }, { size: "M", qty: 5 }, { size: "L", qty: 1 } ],
category: "clothing"
},
{
type: "XYZ",
message: "a generic text message",
date: [ "tag1", "tag2" , "tag3" ],
category: "houseware",
age: 12,
}
...
查询时,我打算使用类型来缩小要搜索的文档,然后搜索其他索引字段。
MongoDB 是否能够利用涵盖我正在搜索的字段的不同索引来执行这些查询?
另外,如果我在搜索中包含索引的type 字段以及非索引字段,它会扫描所有文档还是利用type 字段索引来缩小范围,然后才扫描这些文档以查找其他标准?
我使用的是 MongoDB 2.6.6。
谢谢!
【问题讨论】: