我是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
)
{}
这是查询条件,在我们的例子中,我们将新的attribut添加到我们的所有记录中,我们传递一个空对象{}
{'$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/
如果无论如何,您感兴趣的更新仅用于创建或更新的日期时间,您可以在创建模型时添加此属性
{
timestamps: true
}
这将添加两个属性updatedAt
和createdAt
和mongodb将自动为您维护它们(创建和更新时间)。