亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Mongoose 更新完全替換以前的文檔

Mongoose 更新完全替換以前的文檔

慕森王 2023-07-20 10:24:56
我正在嘗試更新我的文檔以刪除我正在前端進一步測試的一些字段,我用以下方法刪除了這些字段:delete myObject.myField;因此,當我在貓鼬之前查看它時,findByIdAndUpdate它確實沒有這些字段,然后我嘗試像這樣更新:Journee.findByIdAndUpdate(req.params.id, journee, {new: true, overwrite: true, runValidators: true, context: 'query'}, )            .then(() => {                res.status(200).json()            })            .catch(err => {                res.status(400).json({ err })            })但是當我像這樣使用覆蓋選項時,它會觸發我的唯一驗證器并返回錯誤。我不明白如何實現我的目標,在我看來,這mongo是創建一個重復的文檔,然后抑制舊的文檔或類似的東西。而不是僅僅清空文檔并用新數據填充它。
查看完整描述

1 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

如果我理解得很好,您想刪除一些字段并用新字段更新文檔。

所以我認為更好的方法是使用$unset.?

您可以從$unset文檔中刪除任何字段。

這里有一個例子

通過這樣的查詢:

db.collection.update({

? "id": 1

},

{

? "$unset": {

? ? "field1": "",

? ? "field3": ""

? }

})

您可以找到您想要的文檔(例如使用id或任何您想要的)。然后$unset根據需要刪除字段。


使用貓鼬是一樣的:


var update = await model.updateOne({

? "id": 1

},

{

? "$unset": {

? ? "field1": "",

? ? "field3": ""

? }

})

console.log(update)

顯示輸出:


{ n: 1, nModified: 1, ok: 1 }


查看完整回答
反對 回復 2023-07-20
  • 1 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號