我有一个如下所示的objectId:["56153e4c2040efa61b4e267f","56033932efefe0d8657bbd9e"]来在我使用的模型中保存这些信息:
items: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Items'
}]我要做的是在删除请求中从前端提取一个等于objectId的数组元素。
我使用的代码:
_.remove(unit.items, request.params.itemId);我用的是房客图书馆。
我想问题是数组中有ObjectId元素,我正在尝试与一个字符串(即request.params.itemId )进行比较。
发布于 2015-12-16 01:38:15
我有一个非常类似的设置,一个“事件”对象,它有一个数组的“赋值”对象保存为一个ObjectIds数组。我可以简单的使用
obj.arrayField.remove(idToRemove);以下是我的删除路由处理程序中的相关代码:
var id = req.assignment._id;
req.event.assignments.remove(id);
req.event.save(function(err, event) {
//etc
}这个对你有用吗?
unit.items.remove(request.params.itemId);发布于 2015-12-16 02:02:44
您需要将字符串传递到mongoose.Types.ObjectId('')中,以获得可以与之进行比较的实际对象。
所以_.remove(unit.items, mongoose.Types.ObjectId(req.params.itemId));
https://stackoverflow.com/questions/34302540
复制相似问题