-1
我想运行更新并为每个更新的资源发布消息。使用回调作为标准猫鼬查询运行时,它工作正常,但即使将资源输出到流中,也无法使用流作用。Mongoose在使用流时未更新()
var discount = {
startDate: process.env.START_DATE,
endDate: process.env.END_DATE,
funding: process.env.FUNDING,
percentage: process.env.PERCENTAGE
}
var connection = mongoose.createConnection(mongoEndpoint, config.mongo);
var Resources = connection.model('Resources', resourcesSchema);
var stream = Resources.update({_id:6375668}, { $push: { discounts: 'blob2' } }, { multi: true });
stream.on('data', function(resource) {
console.log('Updated resource + published message',resource._id, discount)
rabbit.publish('index-resource', resource);
});
stream.on('end', function() {
console.log('Updated all resources in query');
process.exit(0);
})
var ResourceSchema = module.exports = new Schema({
_id: Number,
discounts: Array
}, {versionKey: false});
嗯['.update()'](http://mongoosejs.com/docs/api.html#model_Model.update)当然不能返回['.stream()']( http://mongoosejs.com/docs/api.html#query_Query-stream),因为这是一个'Query'对象的方法,它不是'.update()'返回的。这只是一个简单的回调或承诺,也不会返回每个修改后的文档。 –