一尘不染

密钥名称中的MongoDB点(。)

javascript

似乎mongo不允许插入带点(。)或美元符号($)的键,但是当我使用mongoimport工具导入其中包含点的JSON文件时,效果很好。驱动程序抱怨试图插入该元素。

这是文档在数据库中的外观:

{
    "_id": {
        "$oid": "..."
    },
    "make": "saab",
    "models": {
        "9.7x": [
            2007,
            2008,
            2009,
            2010
        ]
    }
}

我是不是做错了,不应该使用带有外部数据的哈希图(例如模型),还是可以以某种方式逃脱点?也许我在想太多类似Javascript的东西。


阅读 208

收藏
2020-05-01

共1个答案

一尘不染

MongoDB不支持其中带有圆点的键,因此在导入之前,您必须预处理JSON文件以删除/替换它们,否则您将为各种问题做好准备。

没有标准的解决方法可以解决此问题,最好的方法过于依赖于具体情况。但是,如果可能的话,我会避免使用任何关键的编码器/解码器方法,因为您将继续永久性地给它带来不便,因为JSON重组可能是一次性的成本。

2020-05-01