我正面臨一個問題。我有一個名為的模型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,
},
}
);
但它回傳所有日期的回應,我只想要新添加的銷售日期。我怎么解決這個問題?
uj5u.com熱心網友回復:
讀取回應并從節點 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)
uj5u.com熱心網友回復:
嘗試分離您的資料。為 salesInfo 建立一個架構,為 salesDate 建立另一個架構,并嘗試在這兩個架構之間建立關系。或者,當您執行“findOneAndUpdate”時,請嘗試使用 Car 型號的 _id 而不是 salesDate 的 _id。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/348836.html
