Mongodb未能通过“在密钥中找到缺失值”来对集合进行分片

问题描述 投票:0回答:1

需要快速帮助。对于我的生活,我无法弄清楚为什么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]不是null。为什么MongoDB会以这种方式运行?

mongodb sharding
1个回答
0
投票

将其更改为点符号有效。

mongos> sh.shardCollection(“mydb.logs”,{“tags.0”:1});

不过,我仍然不确定它为什么不接受第一个符号[]。

© www.soinside.com 2019 - 2024. All rights reserved.