MongoDb 在使用更新操作($currentDate)时通过替换文档进行更新[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 } })
我在 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 } })