Database

[{"user_id":11,"content":"black","date":"somedate"},{"user_id":6,"content":"blue","date":"somedate"},{"user_id":3,"content":"red","date":"somedate"},{"user_id":4,"content":"black","date":"somedate"},{"user_id":11,"content":"black","date":"somedate"},{"user_id":4,"content":"blue","date":"somedate"},{"user_id":90,"content":"red","date":"somedate"},{"user_id":7,"content":"orange","date":"somedate"},{"content":"orange","date":"somedate"},{"content":"red","date":"somedate"},{"user_id":4,"content":"orange","date":"somedate"},{"user_id":1,"content":"orange","date":"somedate"},{"content":"red","date":"somedate"},{"user_id":90,"content":"purple","date":"somedate"},]

Query

db.collection.aggregate([{$addFields:{weight:[{key:4,score:10},{key:8,score:9},{key:90,score:8},{key:1,score:7},]}},{$addFields:{weight:{$filter:{input:"$weight",as:"item",cond:{$eq:["$$item.key","$user_id"]}}}}},{$set:{weight:{$cond:[{$eq:[{$size:"$weight"},1]},{"$arrayElemAt":["$weight",0]},{score:1}]}}},{$set:{weight:"$weight.score"}},{"$sort":{"weight":-1,"date":-1}}])

Result