我在mongoose中使用批量更新操作时遇到问题。每当我在匹配条件下传递_id时。它不会更新结果,当我改变我的条件标准,除了_id,它工作正常。对此有任何想法。请帮我。这是我的代码
var bulk = roleObj.collection.initializeUnorderedBulkOp();
bulk.find({_id: '56b9ba46b51a3b2114b0b44e'}).update({$set: {name: 'bla bla'}});
bulk.execute(function (err, data) {
});
答案 0 :(得分:2)
这是因为您正在调用基础mongo集合的批量方法,而不是在 ObjectID
_id的mongoose API方法>。您需要首先将字符串转换为 ObjectID
,然后在批量更新中使用它:
var mongoose = require('mongoose'),
id = mongoose.Types.ObjectId('56b9ba46b51a3b2114b0b44e');
bulk = roleObj.collection.initializeUnorderedBulkOp();
bulk.find({_id: id}).update({$set: {name: 'bla bla'}});
bulk.execute(function (err, data) { ... });