gpt4 book ai didi

javascript - 如何对数组应用映射操作来添加属性?

转载 作者:行者123 更新时间:2023-12-02 21:19:42 24 4
gpt4 key购买 nike

我想将属性 type 作为 billing 添加到 mongodb 操作的结果中。我从Is it possible to add dynamically named properties to JavaScript object?找到了很多答案,就像这个:https://stackoverflow.com/a/46512466/6655884这里:

    let r1 = await Billing.find({
launchDate: {
"$gte": new Date(req.query.minDate),
"$lte": new Date(req.query.maxDate)
},
deleted: false,
status: "pago"
});

r1.map((obj)=>({...obj,['type']:"billing"}));

但是当我打印 r1 时,没有 type 属性。

更新:

怎么样

for (var i=0; i<r1.length; i++) {
r1[i]['type'] = "billing";
}

也不起作用

最佳答案

这种情况可能会发生,因为 mongoose .find() 可能会生成原始 MongoDB 文档而不是 javascript 对象,请尝试使用 .lean() 进行转换result 到 Js 对象中以便操作它:

 let r1 = await Billing.find({
launchDate: {
"$gte": new Date(req.query.minDate),
"$lte": new Date(req.query.maxDate)
},
deleted: false,
status: "pago"
}).lean();

r1.map((obj)=>({...obj,['type']:"billing"}));

或者您可以使用 aggregation-pipeline 在查询中执行此操作:

 let r1 = await Billing.aggregate([
/** Filter docs with criteria */
{
$match: { }
},
/** Add new field to all returned docs */
{
$addFields: {
type: "Billing"
}
}
]);

关于javascript - 如何对数组应用映射操作来添加属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60879537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com