CNode

求解mongoose的批量删除

问答
Ffangsini发布于11 年前最后回复8 年前7 回复8341 浏览0 收藏

如题,目前已知用mongoose的单个删除:

// category
var schema = new Schema({
  user_id: String,
  name: String
});
// 删除
exports.deleteCate = function(req, res) {
  categoryModel.remove({_id: req.body._id}, function(err) {
	if(err) {
	  return res.json({err: err});
	} else {
	  return res.json({msg: 'success'});
	}
  });
};

请问如果一些性删除多个 category 应该怎么办?

查看回复

回复 (7)

K
kenshinhu#1·11 年前

用个aync将要删除的key放到一个数组里,之后遍历删除

引用 kenshinhu用个aync将要删除的key放到一个数组里,之后遍历删除

@kenshinhu 你这样做不太好吧,要删几条就发几个请求。

楼主你还是要多看文档多思考

D
dean5277#3·11 年前

我也是用async遍历删除的。

3
359056163#4·11 年前

var ids = new Array(...) model.remove({_id:{$in:ids}})

S
shuson#5·11 年前

在这种需求下,为了照顾性能和数据安全,可以采取soft delete模式 没有batch delete但是咱有batch update啊

Model.update({ key: value }, { $set: { delete: true }}, { multi: true }, callback);
C
CocaCola183#6·11 年前

用async吧

D
dkl520#7·8 年前
引用 359056163var ids = new Array(...) model.remove({ id:{$in:ids}})

@359056163 这个ids 是ObjectId的数组还是普通的数组???? 我都试过了,都没有什么效果

参与回复
登录后即可参与回复。登录