python - 使用 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 '$'
解决方案
驱动程序不支持在字段名称中使用 $。请参阅https://docs.mongodb.com/manual/core/document/#field-names。
根据那里给出的规则,您应该能够将文档插入服务器,因为 $ne 不是顶级字段,只要您找到允许您执行此操作的驱动程序(pymongo 显然不是其中之一)。