从objectId数组中删除一个ObjectId
我有一个objectId是这样的: ["56153e4c2040efa61b4e267f","56033932efefe0d8657bbd9e"]
要保存在我的模型中的信息,我使用:
items: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Items' }]
我想要做的是拉一个数组的元素,它等于我从前端发送的删除请求中的objectId。
我正在使用的代码:
_.remove(unit.items, request.params.itemId);
我正在使用lodash库。
我想这个问题是数组有ObjectId元素,我试图比较一个string是request.params.itemId。
我有一个非常类似的设置与“事件”对象,有一个“分配”对象数组保存为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);
您需要将string传递给mongoose.Types.ObjectId('')
以获取您可以比较的实际对象。
所以_.remove(unit.items, mongoose.Types.ObjectId(req.params.itemId));