Node.js 用猫鼬散装清除
我尝试用mongoose删除多个文档 我试过这样的东西Node.js 用猫鼬散装清除,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我尝试用mongoose删除多个文档 我试过这样的东西 const result = await Order.remove({id: {$in: req.body.id}}); 但是,它不起作用 req.body.id的输出是数组 确保req.body.id是一个数组。我试着这样做: req.body.id.constructor === Array 结果是正确的 怎么了 更新 这是我的req.body.id:['5ab0a359672f32ad94c5aa2d','5ab0a3d25e7b
const result = await Order.remove({id: {$in: req.body.id}});
但是,它不起作用
req.body.id的输出是数组
确保req.body.id是一个数组。我试着这样做:
req.body.id.constructor === Array
结果是正确的
怎么了
更新
这是我的req.body.id:['5ab0a359672f32ad94c5aa2d','5ab0a3d25e7bef513cd882ff']您必须将数组元素转换为ObjectId,然后才能一次删除多个文档 像 如果它匹配并被删除,那么您将得到如下响应{nRemoved:2} 如果你使用猫鼬,那么你可以这样做
const mongoose = require('mongoose')
const ObjectId = mongoose.Types.ObjectId
然后你可以像ObjectId‘YOUR_ID’一样转换它。你必须将数组元素转换成ObjectId,然后你可以一次删除多个文档 像 如果它匹配并被删除,那么您将得到如下响应{nRemoved:2} 如果你使用猫鼬,那么你可以这样做
const mongoose = require('mongoose')
const ObjectId = mongoose.Types.ObjectId
然后可以像ObjectId‘YOUR_ID’一样转换它。为此,首先需要将它们转换为MongoDB ObjectId。试试这个
const result = await Order.remove({id: {$in: (req.body.id).map(mongoose.Types.ObjectId)}});
为此,首先需要将它们转换为MongoDB objectID。试试这个
const result = await Order.remove({id: {$in: (req.body.id).map(mongoose.Types.ObjectId)}});
你能把那个数组贴出来吗??可能是您的数组不是ObjectID的。请查看@Subburaj check my的可能重复项update@AlexandruOlaru这是不同的。你能发布那个数组吗??可能是您的数组不是ObjectID的。请查看@Subburaj check my的可能重复项update@AlexandruOlaru不一样