首页 > 解决方案 > 如何在mongodb中为以下类型的数据创建索引

问题描述

db.test.insert({a:1, b:[1])
db.test.insert({a:1, b: 1})
db.test.insert({a:[1], b: 1})
db.test.insert({a:[1], b: [1]})

什么应该是索引字段的正确方法,以便我可以查询 a 和 b?

标签: mongodbindexing

解决方案


{ _id: 1, a: [1, 2], b: 1, category: "A array" }
{ _id: 2, a: 1, b: [1, 2], category: "B array" }

复合多键索引 { a: 1, b: 1 } 是允许的,因为对于每个文档,只有一个由复合多键索引索引的字段是一个数组;即没有文档包含a 和b 字段的数组值。

但是,在创建复合多键索引后,如果您尝试插入 a 和 b 字段都是数组的文档,MongoDB 将无法插入。

----文档

但是您的文档之一 a & b 都包含数组。


推荐阅读