如何在 mongodb 中获取单个数组返回值?



我正在使用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那里得到这个:

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

但我想要这个:

[{},{},{}]

假设您当前的输出如下所示:

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

您需要两个额外的管道阶段,$unwind 和$replaceRoot:

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

蒙戈游乐场

最新更新