MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB $addFields und $in insgesamt

Sie können $mergeObjects verwenden bestehenden Tweet mit is_liked zu kombinieren Feld und verwenden Sie dann $project um likedBy auszuschließen Array aus dem Endergebnis, versuchen Sie:

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