Node.js 用猫鼬散装清除

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

我尝试用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','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不一样