MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB $addFields et $in dans l'ensemble

Vous pouvez utiliser $mergeObjects pour combiner un tweet existant avec is_liked puis utilisez $project pour exclure likedBy tableau à partir du résultat final, essayez :

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
        }
    }
])