Агрегация MongoDB с $ lookup ограничивает некоторые поля для возврата из запроса

В Монго, после выполненияaggregation с$lookupЯ хотел бы запрос вернуть только некоторые поля, а не весь документ.

У меня есть следующий запрос:

db.somecollection.aggregate([{
    $lookup: {
        from: "campaigns",
        localField: "campId",
        foreignField: "_id",
        as: "campaign"
    }
}, {
    $unwind: "$campaign"
}, {
    $lookup: {
        from: "entities",
        localField: "campaign.clientid",
        foreignField: "_id",
        as: "campaign.client"
    }
}]);

Этот запрос вернет мне это:

{
"_id" : ObjectId("56cc7cd1cc2cf62803ebfdc7"),
"campId" : ObjectId("56c740e4479f46e402efda84"),
"articleId" : ObjectId("56c742c06094640103ba3843"),
"campaign" : {
    "_id" : ObjectId("56c740e4479f46e402efda84"),
    "clientid" : ObjectId("56c740b8479f46e402efda83"),
    "client" : [
        {
            "_id" : ObjectId("56c740b8479f46e402efda83"),
            "username" : "someusername",
            "shhh" : "somehashedpassword",
            "email" : "[email protected]",
        }
    ]
}

Запрос работает хорошо, но я хотел бы отфильтровать поля вcampaign.client чтобы получить только например_id а такжеusername, Есть ли способ сделать это в MongoDBaggregate запрос?

Ответы на вопрос(1)

Ваш ответ на вопрос