You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB调用deleteOne()删除文档返回{acknowledged:true,deletedCount:0}但ID正确

MongoDB删除文档返回deletedCount:0的问题解决

问题场景

尝试从MongoDB数据库中删除单个文档时,操作返回{acknowledged: true, deletedCount: 0},确认状态为true但无文档被删除,且传入的_id是正确的。

客户端代码

const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true, serverApi: ServerApiVersion.v1 });
const run = async()=> {
try{
const productCollection =client.db('productCMS').collection("AllProducts")

// Read One 
app.get('/products/:id', async(req, res) => {
    const id= req.params.id
    const query ={_id: ObjectId(id)}
    const result= await productCollection.findOne(query)
    console.log(result)
    res.send(result)
})


// Read All
app.get('/products',  async(req, res) => {
    const query ={}
    const cursor=productCollection.find(query)
    const result= await cursor.toArray()
    console.log(result)
    res.send(result)
})



// write
app.post('/products', async(req, res) => {
    const products= req.body
    const result= await productCollection.insertOne(products)
    console.log(result)
    res.send(result)

})


// DELETE 
app.delete('/products/:id', async(req, res)=> {
    const id = req.params._id
    console.log(id)
    const query= {_id: ObjectId(id)}
    const result= await productCollection.deleteOne(query)
    console.log(result)
    res.send(result)
})
}finally {}
}
run().catch(err=>console.log(err))

app.get('/' , (req, res)=> {
res.send('The sever is Running....')
})

app.listen(port, ()=> {
console.log('Server Port', port)
})

问题原因与解决方法

问题出在DELETE接口的参数获取逻辑上:

  • 路由定义为/products/:id,说明URL中传递的参数名是id,需通过req.params.id获取
  • 但代码中错误使用了req.params._id,导致id变量值为undefined,生成的查询条件{_id: ObjectId(undefined)}无法匹配任何文档,因此删除计数为0

修正后的DELETE接口代码:

// DELETE 
app.delete('/products/:id', async(req, res)=> {
    const id = req.params.id // 改为req.params.id
    console.log(id)
    const query= {_id: ObjectId(id)}
    const result= await productCollection.deleteOne(query)
    console.log(result)
    res.send(result)
})

内容的提问来源于stack exchange,提问作者Moniruzzaman Sujon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:55:16