这是我第一次使用pymongo。我有一个更新文档中的用户数据的方法。例如,当您登录时,它应该更新lastLog字段,该字段指示用户上次登录的时间。
这是方法
def update_user(self, mongo, field, value=None):
print self.username
if field != 'lastLog':
result = mongo.db.Users.update(
{'username': self.username},
{
'$set': {
field: value
}
}
)
else:
result = mongo.db.Users.update(
{'username': self.username},
{
'$set': {
'$currentDate': {
'LastLog': {
"$type": "timestamp"
}
}
}
}
)
if result.matched_count != 1:
#NEEDLOG
print "No update performed"
return False
但是,每次我登录时,都会收到此错误:
WriteError: The dollar ($) prefixed field '$currentDate' in '$currentDate' is not valid for storage.
这是文档在MongoDB中的外观
db.Users.find() {" _id" :ObjectId(" 57b64e1330e6e23b7d050c76"),"用户名" :" iscalde-contractor"," lastLog" :null,"姓名" :" Agustin Recalde"," url" :" / profile / arecalde-contractor"," role" :"管理员","活跃" :true," id" :" 9249" }
我非常确定我正确地遵循了文档。我错过了什么吗?提前致谢!
答案 0 :(得分:1)
我修好了。我做错了。其他内部的代码现在看起来像这样
else:
result = mongo.db.Users.update_one(
{'username': self.username},
{
'$currentDate': {
'lastLog': {'$type': 'timestamp'}
}
}
)