Database

[{"user":1,"nbPosts":1}]

Query

db.collection.update({user:1},[{"$set":{"nbPosts":{"$sum":["$nbPosts",1]},"bestPost":{"$cond":{"if":{"$eq":["$bestPost",undefined]},"then":"new_id","else":"$bestPost"}}}}])

Result