【发布时间】:2018-08-14 13:09:08
【问题描述】:
我想建立一个支持查询特定数组元素位置的索引。
给定数百万个包含值数组的文档:
db.foo.insert({ array: [true, false, null, true] })
db.foo.insert({ array: [false, null, true, true] })
我想搜索位置 2 中带有 true 的文档。
db.foo.find({ "array.2": true })
如果我创建一个多键索引:
db.foo.createIndex({ array: 1 })
索引支持{ "array": true }(搜索所有数组元素)形式的查询,但不支持{ "array.2": true }(搜索特定数组元素)。
documentation 表示“MongoDB 为数组中的每个元素创建一个索引键”,所以我期待如果我在 array 字段上创建一个索引,它将用于array.0 上的查询, array.1、array.2 等。有什么诀窍可以让它工作吗?
【问题讨论】:
标签: arrays mongodb indexing multikey