mongodb - Mongodb 无法使用“在键中找到缺失值”对集合进行分片
问题描述
在这方面需要快速帮助。对于我的一生,我无法弄清楚为什么 MongoDB 无法对集合进行分片,并指出给定的分片键有一个空值。
我正在尝试根据文档中的第一个标签元素创建分片,因此键是标签 [0]。为了澄清,在这种情况下,我指向的值是“fc4f03a4-0f7b-5cf4-af4e-8b38377a9e34”。
mongos> sh.shardCollection("mydb.logs", { "tags[0]": 1 } );
{
"ok" : 0,
"errmsg" : "found missing value in key { : null } for doc: { _id: \"8f0f90bd-e63e-521f-a637-b773f3eefdf0\", tags: [ \"fc4f03a4-0f7b-5cf4-af4e-8b38377a9e34\", \"Converter\" ], date: new Date(1531180801464), account: \"1aff2ce3-b510-525a-86ff-e379fac03f8c\", data: \"Converter has been initialized.\", __v: 0 }"
}
显然,tags[0] 不为空。为什么 MongoDB 会这样?
解决方案
将其更改为点符号有效。
mongos> sh.shardCollection("mydb.logs", { "tags.0": 1 } );
不过,我仍然不确定为什么它不接受第一个符号 []。
推荐阅读
- reactjs - 通过访问 this.state 在状态中设置索引
- r - 如何将 2D 数据帧转换为 3D 矩阵,保留行和列顺序
- code-coverage - 通过 CircleCI 中的赛普拉斯代码覆盖插件运行时,纽约报告失败并显示 ENOENT
- ruby-on-rails - 为什么我的多对多集合没有通过?
- python - 从 Python 到 SQL(Aginity、Netezza)的 CREATE/DROP 调用不起作用
- javascript - Vue-tables-2 options.hiddenColumns 不起作用
- python - 列表、字典和元组值
- php - WHMCS - 将客户名称和电子邮件添加到附属页面
- r - 有没有办法找到并删除 R 中分组 ID 的奇数行?
- snowflake-cloud-data-platform - Snowflake my_var 中的元组类型