2
基本上我有一个简单的场景,首先我需要获取整个集合,例如“cars”,然后遍历该集合并在某些上执行'findOne'另一个集合,例如基于首次收集的某些条件的“用户”。node,mongoose'findOne'在另一个集合'find'里面的一个集合中
所以:
// requiring modules and mongoose.connect() part
...
CarModel.find(function(err, cars) {
console.log("1");
_.each(cars, function(car) {
console.log("2");
UserModel.findOne({username: car.owner}, function(err, user) {
console.log("3");
user.some_field++;
user.save();
});
});
});
例如,当汽车集合了2个文件(同car.owner)IM预计2个增量 'some_field',但我只得到一个。
// console.logs
1
2
2
3
3
我可以猜到,即时通讯做错了这里的执行和异步的东西的流动,有人可以解释我为什么这不woriking。
@JohnyHK,谢谢你的工作。 只有一个方面说明,性能呢?比方说,我有例如100.000文件的汽车收藏甚至百万? – Srle 2014-10-30 14:43:19
很高兴帮助。这是一个单独的问题,因此最好单独发布。 – JohnnyHK 2014-10-30 14:54:11