簡體   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