我想建立一个索引,支持针对特定数组元素位置的查询。
给定数百万个包含值数组的文档:
db.foo.insert({ array: [true, false, null, true] })
db.foo.insert({ array: [false, null, true, true] })
我想搜索true
位置为 2 的文档。
db.foo.find({ "array.2": true })
如果我创建一个多键索引:
db.foo.createIndex({ array: 1 })
索引支持形式的查询{ "array": true }
(搜索所有数组元素)但不支持{ "array.2": true }
(搜索特定数组元素)。
文档说“ MongoDB 为数组中的每个元素创建一个索引键”,所以我期待如果我在该array
字段上创建一个索引,它将用于查询array.0
, array.1
,array.2
等。有没有一个技巧来获得这个去工作?