gpt4 book ai didi

mongodb - Mongoose findOneAndUpdate 如何返回最后推送的元素

转载 作者:行者123 更新时间:2023-12-04 13:50:40 27 4
gpt4 key购买 nike

我正面临一个问题。我有一个名为 Car 的模型它具有以下结构。

{
_id: '6179bd464c68a217e895703c',
salesInfo: {
salesDate: [
{
_id: '6179bd464c68a21fgff5703c',
name: 'John'
}
]
}
}
我想在名为 salesDate 的嵌入文档中添加多个新的销售日期并返回这些新添加的销售日期作为对前端的响应。
   data: {
salesInfo: {
// want to return only newly added sales date
salesDate: [
{
_id: "6179bd464c1ffffgff5703c",
name: "Doe"
},
{
_id: "6179bd464cf1fgff5703c",
name: "Tim"
}
]
}
}
我正在使用 mongoose findOneAndUpdate()方法和使用 $push更新查询中的运算符并返回字段 salesInfo.salesDate像这样的东西。
   const salesObj = [{ name: "Doe" }, { name: "Tim" }];

const response = await Car.findOneAndUpdate(
{ _id: "6179bd464c68a217e895703c" },
{ $push: { "salesInfo.salesDate": salesObj } },
{
upsert: false,
new: true,
fields: {
_id: 0,
"salesInfo.salesDate": 1,
},
}
);
但它返回所有日期的响应,我只想要新添加的销售日期。我怎么解决这个问题?

最佳答案

读取响应并从节点 js 创建数据

   const response = await Car.findOneAndUpdate(
{ _id: "6179bd464c68a217e895703c" },
{ $push: { "salesInfo.salesDate": salesObj } },
{
upsert: false,
new: true,
fields: {
_id: 1,
"salesInfo.salesDate": 1,
},
}
);
var tt = []
saleObj.forEach(item=>{
item._id = response._id
tt.push(item)
})
response.saleInfo.saleDate = tt
res.json(response)

关于mongodb - Mongoose findOneAndUpdate 如何返回最后推送的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69822283/

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