我正在尝试使用MongoDB Compass将以下文档插入到mongo数据库内部的集合中。
{
"name":"cat",
"label":{
"1.0":"foo",
"2.0":"bar"
}
}
但我遇到此错误:
键1.0不得包含'。'
我尝试使用以下命令通过mongo shell插入同一文档:
db.collection_name.insert([
{
"name": "cat",
"label": {
"1.0": "foo",
"2.0": "bar"
}
]);
并且文档已正确插入。
此外,如果我使用MongoCompass导出整个集合,然后尝试导入它,则会收到错误消息。
所以,我的问题是:当通过终端的insert
命令正常工作时,为什么MongoDB Compass会给我该错误?
可能您在Compass-MongoDB版本中存在差异。从3.6版开始,MongoDB支持带点的键(尽管不建议使用它们,并且某些驱动程序可能不支持它们,请参见Restrictions-on-Field-Names)。最新版本的Compass也支持带点的键。