首页 > 解决方案 > 使用 pymongo 在 mongodb 中存储特殊字符

问题描述

我有一个 Json 文件,其中包含以下 json 列表:

[{"name":"somename","value":{"$ne":"negativity"}}]

我正在解析或读取此文件并在 mongo 中转储,例如:

for file in os.listdir('/opt/myfiles/test.json'):
    with open(file, 'r') as fi:
        dict = json.load(fi)
        for data in dict:
            db.collection.insert(data)

它抛出一个错误,即:

bson.errors.InvalidDocument: key '$ne' must not start with '$'

标签: pythonmongodbpymongobsonrobo3t

解决方案


驱动程序不支持在字段名称中使用 $。请参阅https://docs.mongodb.com/manual/core/document/#field-names

根据那里给出的规则,您应该能够将文档插入服务器,因为 $ne 不是顶级字段,只要您找到允许您执行此操作的驱动程序(pymongo 显然不是其中之一)。


推荐阅读