Как получить возвращаемое значение одного массива в mongodb? - PullRequest
1 голос
/ 17 июня 2020

Я использую Nodejs, Typescript и Mongodb. Я беру вложенный массив в свой запрос, но я хочу получить только один массив из db. Мой запрос:

let sampleQuery:any = await   OfferModel.aggregate([
                    {$match : {CompanyLoginMail : CompanyLoginMail}},
                    {$lookup: {from: "members",localField: "MiddleManMail",foreignField: "Email",as: "mems"}},
                    {$project : {
                            mems : { $filter : {input : "$mems"  , as : "mems", cond : { $ne : ['$$mems.Email' , CompanyLoginMail]}} }


                        }}

                ])
                return sampleQuery;

Я получаю это от mongodb:

[
    {
        [
            {},{},{}
        ]
    }
]

Но я хочу это:

[{},{},{}]

1 Ответ

1 голос
/ 17 июня 2020

Предполагая, что ваш текущий вывод выглядит следующим образом:

[
    {
        mems: [
            {},{},{}
        ]
    }
]

, вам нужны две дополнительные стадии конвейера, $ unwind и $ replace Root:

db.collection.aggregate([
    { $unwind: "$mems" },
    { $replaceRoot: { newRoot: "$mems" } }
])

Пн go Детская площадка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...