繁体   English   中英

通过使用更新操作($ currentDate)替换文档来更新MongoDb [pymongo]

[英]MongoDb update by replacing the document while using update operation ($currentDate)[pymongo]

我在python中使用pymongo我有一个像这样的mongodb文档

{u'_id': ObjectId('55110d55a5bd910f2513fc91'), u'ghi': u'jkl'}

我想通过替换来更新文档

db['table_name'].update({'ghi':'jkl'},{'ghio':'jkl'}, True)

问题是我想将$currentDate与更新查询一起使用,因为我需要在文档中添加更新时间。 我怎么做?

到目前为止,这是我尝试过的

db['table_name'].update({'ghi':'jkl'},{'$set':{'ghik':'jkl'}, '$currentDate':{'date':True}}, True)

上面的代码的问题是我不想使用$set ,因为它将保留我不需要的其他字段。

db['table_name'].update({'ghi':'jkl'},{'$set':{'ghik':'jkl'}, '$unset':{'ghi':True}, '$currentDate':{'date':True}}, True)

上面的代码有效,但是我想知道是否有更好的方法。

currentDate仅适用于$set类的更新运算符,不适用于完整文档更新。 如您所指出的,您可以使用$unset更新,尽管这只会清除您专门命名的字段,但是您可以在客户端设置时间戳

db.test.update({ "ghi" : "jkl" }, { "ghio" : "jkl", "date" : datetime.today() })

或者您可以进行两次更新

db.test.update({ "ghi" : "jkl" }, { "ghio" : "jkl" })
db.test.update({ "ghio" : "jkl" }, { "$currentDate" : { "date" : true } })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM