mongodb - PyMongo 将 BSON 文档插入 MongoDB

标签 mongodb pymongo bson

我想将一个新文档插入到我的 MongoDB 集合中。

我的第一个输入是一个字符串,如下所示:

{
    "date" : ISODate("2013-10-06T18:11:26.329Z"),
    "engines" : {},
    "expiration_date" : ISODate("2013-10-06T18:11:36.329Z"),
    "file_name" : "elad.elad",
    "scan_status" : "TEST",
    "task_id" : "4ce4ae9e-ef0a-476a-8189-92a5bfe328bd"
}

我正在使用以下字符串创建一个 bson.BSON 对象:

b=bson.BSON(doc)

我正在尝试将其插入到我的 MongoDB 集合中:

collection.insert(b)

但我收到以下错误: 类型错误:“str”对象不支持项目分配

有人知道这里出了什么问题吗?

最佳答案

您可以直接将字符串转换为 BSON,您需要 json.loadsBSON.encode 方法。

您可以使用以下代码:

import datetime
from pymongo import MongoClient

db = MongoClient().test
collection = db.some

doc = {
    "date" : datetime.datetime.strptime("2013-10-06T18:11:26.329Z", "%Y-%m-%dT%H:%M:%S.%fz"),
    "engines" : {},
    "expiration_date" : datetime.datetime.strptime("2013-10-06T18:11:36.329Z","%Y-%m-%dT%H:%M:%S.%fz"),
    "file_name" : "elad.elad",
    "scan_status" : "TEST",
    "task_id" : "4ce4ae9e-ef0a-476a-8189-92a5bfe328bd"
}
collection.insert(doc)

这里我使用 datetime 对象将字符串日期转换为 Python 兼容的日期时间

关于mongodb - PyMongo 将 BSON 文档插入 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304085/

相关文章:

javascript - MongoDB 投影将子对象作为列返回

mongodb - 使用投影从查找查询中排序字段

python - 如何在此示例中使用 Mongodb 聚合?

python - MongoDB - 不存在字段的错误处理

node.js - 'this' 在 Mongoose 预保存 Hook 中未定义

javascript - 如何构建 MongoDB 查询以使用 ACL 评估允许和拒绝的权限链?

python - bson.errors.InvalidDocument : key '$oid' must not start with '$' trying to insert document with pymongo

MongoDB 最大文档大小

c++ - Mysql json二进制编码

java - 格式化 JSON 字符串 (bson)