mongodb - 如何在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?
解决方案
{ _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 都包含数组。
推荐阅读
- mysql - 在 MySQL 中使用 CTE 更新或删除
- java - int 到 2 个字节的可变长度编码
- arrays - 拆分 CSV 文件问题
- python-3.x - 在抽象基类中实现子类级别变量
- python - 我可以制作一个包含不同字段和注册字段的表单吗?
- java - EL1008E: 在“java.util.ArrayList”类型的对象上找不到属性或字段“内容” - 可能不是公共的或无效的?
- batch-file - 具有不同变量值的批处理循环命令
- c# - Facebook json 消息的编码/解码问题。C# 解析
- python - 在 Python 中查找列表的大小/内部结构
- html - Bootstrap 4 轮播响应式设计