我想将每个数组合并到一个新对象中,并将字符串附加到其中
我有以下代码:
let answer1 = await Answer.aggregate([
{ $match: { _id: mongoose.Types.ObjectId(req.query.answer5) } },
{
$lookup: {
from: "products",
localField: "product_result",
foreignField: "_id",
as: "product_result",
},
},
{
$lookup: {
from: "categories",
localField: "product_result.category",
foreignField: "_id",
as: "slug_category",
},
},
{
$lookup: {
from: "categories",
localField: "slug_category.parent",
foreignField: "_id",
as: "parent_slug",
},
},
{
$lookup: {
from: "questions",
localField: "question_id",
foreignField: "_id",
as: "question",
},
},
{ "$unwind": "$slug_category" },
{
"$project": {
"product_result.name": 1,
"product_result.image_thumbnail": 1,
"product_result.slug": 1,
"product_result.parent_slug": "$parent_slug.slug",
"question.question": 1,
}
},
{ $limit: 1 },
]).exec();
我得到了这样的结果
[
{
slug: 'smooth-silky',
name: 'Smooth & Silky',
image_thumbnail: 'cfad098c70bfd0848f659b3dc26daabf2e5feb39.png',
parent_slug: 'hair-mask'
},
{
slug: 'silky-black',
name: 'Silky Black',
image_thumbnail: 'cfad098c70bfd0848f659b3dc26daabf2e5feb39.png',
parent_slug: 'hair-mask'
}
]
我想要这样的结果
[
{
name: 'Smooth & Silky',
image_thumbnail: 'cfad098c70bfd0848f659b3dc26daabf2e5feb39.png',
slug: '/hair-mask/smooth-silky',
},
{
name: 'Silky Black',
image_thumbnail: 'cfad098c70bfd0848f659b3dc26daabf2e5feb39.png',
slug: '/hair-mask/silky-black',
}
]
我尝试使用 concatArrays 合并 slug 和父 slug 以创建一个新对象,但我没有得到与上面相同的结果,而且我无法使用它附加字符串,我如何实现上面这样的结果? 预先感谢
使用
$project
运算符而不是 $concat
更新您的 $concatArrays
阶段。
{
"$project": {
"product_result.name": 1,
"product_result.image_thumbnail": 1,
"product_result.slug": {"$concat" : ["/","$parent_slug.slug","/","$product_result.slug" ]},
"question.question": 1,
}
},