在MongoDB中使用Python向文档插入新属性

37 投票
5 回答
50318 浏览
提问于 2025-04-16 12:09

我刚接触MongoDB(之前用的是CouchDB),现在在用MongoDB的Python驱动添加新属性到我的文档时遇到了一些问题。

比如,我有以下这个文档:

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

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

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

我该怎么把created_time这个属性加到我的文档里呢?

谢谢!

5 个回答

5

你可以使用 $set 来更新文档。

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

或者你可以先获取文档,修改它(用 Python 代码),然后再保存回去。

19

如果想要在MongoDB的一个集合中给所有现有文档添加一个新属性,我们可以在mongo shell中使用以下方法:

db.collection.update( 
    {}, 
    {'$set': {"new_attribute":"attribute_value"}}, 
    false, 
    true
)
  • {} 是查询条件。在我们的例子中,因为我们要给所有记录添加新属性,所以我们传入一个空对象 {}
  • {'$set': {"new_attribute":"attribute_value"}} 的意思是,使用 $set 操作符,在我们的记录中插入一个新的键 "new_attribute",这个键的值是 "attribute_value"
  • falseupsert 参数,它告诉MongoDB如果没有找到匹配的文档,就不要插入新的文档
  • truemulti 参数,它告诉MongoDB要更新多个符合查询条件的文档

想了解更多细节,可以查看: https://docs.mongodb.com/manual/reference/method/db.collection.update/

62
db.collection.update({'_id' : ObjectId(...)}, 
                     {'$set' : {'create_time' : datetime(..) }})

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。

撰写回答