There are actually two ways to work around (BTW, I think mongoDB should definitely fix this long-overdue problem in their next release).
use forEach() after the find(). Instead of update() you can also use save(). The problem of this workaround is performance, as update/save need to search again.
db.tbl.find({$query:...}).forEach(function(d){ db.tbl.update({_id:d._id},{$set:{n:10}}); })
use findAndModify(). This only works for limit 1. If you need to update more than one document, then findAndModify() cannot do it.
db.tbl.findAndModify({ query:{time:{$gt:new Date(new Date()-3600000)}}, sort:{b:-1}, update:{$set:{n:10}} })