-2
這裏是我的架構:我怎樣才能在mongodb文件上做很多操作?
"_id" : "[email protected]"
"modif" : 1
"prs" :
{
"pass" : "sdfdsf"
}
"reset" :
[
{
"code" : "1680"
"timr" : "AQQOAAMGCQMcBgodAAYYAgIMDAkLBAEeAAcNAAEG"
}
]
我想在代碼中
yield tornado.gen.Task(db.users.update, {"_id":email}, {"$set":{"prs.pass":password}}, {"$inc":{"modif":1}}, {"$pop":{"reset":1}})
同一行執行許多操作的,我得到這個錯誤:
assert isinstance(upsert, bool), "upsert must be an instance of bool"
AssertionError: upsert must be an instance of bool
但當我將操作分成三部分時,它可以工作,
yield tornado.gen.Task(db.users.update, {"_id":email}, {"$set":{"prs.pass":password}})
yield tornado.gen.Task(db.users.update, {"_id":email}, {"$pop":{"reset":1}})
yield tornado.gen.Task(db.users.update, {"_id":email}, {"$inc":{"modif":1}})
我發現this,但認爲它在異步調用中不是一回事,這是mongodb鎖嗎?
更新:嘗試這樣做的工作:
yield [tornado.gen.Task(db.users.update, {"_id":email}, {"$set":{"prs.pass":password}}),
tornado.gen.Task(db.users.update, {"_id": email}, {"$pop":{"reset":1}}),
tornado.gen.Task(db.users.update, {"_id":email}, {"$inc":{"modif":1}})]
但isent危險?
對不起,忘了加上字典:) 再次感謝你 – 2013-02-11 09:47:38