我有嵌套在 userSchema 中的注釋我正在嘗試通過 _id 洗掉一個物件,但 deleteOne 正在洗掉整個用戶物件,所以我怎樣才能洗掉帶有 _id 的物件
const keeperSchema = mongoose.Schema({
noteName:String,
noteContent:String,
})
const userSchema = mongoose.Schema({
email:String,
password:String,
notes:[keeperSchema]
})
app.post("/delete",(req,res)=>{
const id=req.body.id
const email=req.body.email
console.log(id)
Keeper.deleteOne({"notes._id":id}).then(()=>{
Keeper.find({email:email},(err,results)=>{
if(results){
console.log(results)
}
})
})
})
uj5u.com熱心網友回復:
你可以這樣做:
userModel.updateOne({_id: idofUser}, {$pull: {notes: {_id: idofnote}}})
您應該查詢您的userModel,因為您想從存盤的 keeper 陣列中提取一個元素,user因此您必須確定要從哪個用戶洗掉您的注釋,這就是您需要用戶 ID 的原因。如果您想從所有用戶中洗掉特定注釋,只需清除您的條件,如下所示:
userModel.updateMany({}, {$pull: {notes: {_id: idofnote}}})
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/424014.html
標籤:猫鼬
上一篇:FindOneAndUpdate僅覆寫和更新第一個id
下一篇:如何先將Model.updateOne()轉換為Model.findOne()然后Model.set()然后Model.save()
