PyMongo 将 BSON 文档插入 MongoDB

PyMongo inserting BSON document to MongoDB

我想在我的 MongoDB collection 中插入一个新文档。

我的第一个输入是此处显示的字符串:

{
    "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 object:

b=bson.BSON(doc)

我正在尝试将它插入到 MongoDB 中的 collection:

collection.insert(b)

但我收到以下错误: TypeError: 'str' object 不支持项目分配

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

您可以直接将字符串转换为 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 兼容的日期时间