[英]Inserting new attribute to a document using MongoDB ( Python )
我是 MONgoDB(来自 CouchDB)的新手,我在使用 MonDB python 驱动程序向 MongDB 中的文档添加新属性时遇到问题。
例如,我有以下文档:
{
'_id':123456,
'text':"this is nice"
}
我想插入一个新属性,例如:
{
'_id':123456,
'text':"this is nice",
'created_time':datetime.datetime.now()
}
如何将 created_time 属性添加到我的文档中?
谢谢!
db.collection.update({'_id' : ObjectId(...)},
{'$set' : {'create_time' : datetime(..) }})
要向 MongoDB 集合上的所有现有文档插入新属性,我们可以在我们的 mongo shell 上执行此方法:
db.collection.update(
{},
{'$set': {"new_attribute":"attribute_value"}},
false,
true
)
{}
这是查询条件,在我们的例子中,要向所有记录添加我们的新属性,我们传递一个空对象{}
{'$set': {"new_attribute":"attribute_value"}}
意味着使用$set
操作符,在我们的记录中插入一个新的键"new_attribute"
,它的值是"attribute_value"
false
它是upsert
参数,它告诉 mongo 在找不到匹配项时不要插入新文档true
它是multi
参数,它告诉 mongo 更新满足查询条件的多个文档要查找更多详细信息,请检查: https : //docs.mongodb.com/manual/reference/method/db.collection.update/
您可以使用 $set 更新文档。
http://www.mongodb.org/display/DOCS/Updating
或者您可以获取文档,对其进行编辑(使用 python 代码)并将其保存回来。
要添加到Taha 的答案中,您可以使用currentDate
插入日期时间属性:
db.getCollection("collection-name").update(
{},
{
$currentDate: {
"date-field-name": { $type: "date" } // you can also use "timestamp" here
}
},
false, true)
或设置您可以使用的特定日期:
db.getCollection("collection-name").update(
{},
{
$set: {
"date-field-name": ISODate("2020-01-23T04:05:06.007Z")
}
},
false, true)
如果通过任何方式,您感兴趣的更新仅针对创建或更新的日期时间,您可以在创建模型时添加此属性
{
timestamps: true
}
这将增加两个属性updatedAt
和createdAt
和MongoDB会对其进行维护(创建,更新时间)为您自动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.