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.loads
或 BSON.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 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.loads
或 BSON.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 兼容的日期时间