MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB $addFields e $in agregados


Você pode usar $mergeObjects para combinar tweet existente com is_liked campo e, em seguida, use $project para excluir likedBy array do resultado final, tente:
db.gamers.aggregate([
    {
        $project: {
            tweets: {
                $map: {
                    input: "$tweets",
                    as: "tweet",
                    in: {
                        $mergeObjects: [
                            "$$tweet",
                            { is_liked: { $in: [ "some-random-dude", { $ifNull: [ "$$tweet.likedBy", [] ] } ] } }
                        ]                            
                    }
                }
            }
        } 
    },
    {
        $project: {
            "tweets.likedBy": 0
        }
    }
])