使用MongoDB(Python)将新属性插入到文档中

问题描述 投票:28回答:4

我是MOngoDB的新手(来自CouchDB),我在使用MonDB python驱动程序在MongDB中为我的文档添加新属性时遇到了问题。

例如,我有以下文件:

{
'_id':123456,
'text':"this is nice"
}

我想插入一个新属性,例如:

{
'_id':123456,
'text':"this is nice",
'created_time':datetime.datetime.now()
}

如何将created_time属性添加到我的文档中?

谢谢!

python mongodb
4个回答
52
投票
db.collection.update({'_id' : ObjectId(...)}, 
                     {'$set' : {'create_time' : datetime(..) }})

5
投票

您可以使用$ set更新文档。

http://www.mongodb.org/display/DOCS/Updating

或者您可以获取文档,编辑它(使用python代码)并将其保存回来。


4
投票

要将新属性插入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/


0
投票

如果无论如何,您感兴趣的更新仅用于创建或更新的日期时间,您可以在创建模型时添加此属性

{
    timestamps: true
}

这将添加两个属性updatedAtcreatedAt和mongodb将自动为您维护它们(创建和更新时间)。

© www.soinside.com 2019 - 2024. All rights reserved.