【发布时间】:2017-07-13 06:14:25
【问题描述】:
我正在使用 bluebird 和 mongoose,我在之前的函数中获得了一组用户。我想更新users 为我的数组中的每个用户设置属性hasCar true 或false。
function findCars(users) {
return Promise.all(users.map((user) => {
return Car.count({
_creator: new ObjectId(req.user),
userId: user._id
})
.then((car) => {
user.hasCar = !!car;
return user;
});
}))
.then(console.log);
}
问题是,在console.log 中,这些用户没有设置hasCar 属性。我尝试了不同的方法,但没有成功。
【问题讨论】:
-
为什么不直接使用
users[index].hasCar = ...,而不是user.hasCar = ...? -
为什么不直接使用
if (car) { … = true; } else { … = false; }而不是… = Boolean(car);? -
嘿,谢谢菲尔的回答,我之前也试过这种方式,
return user在else之后也试过,不行,我还是老用户。 -
“数组不想更新”到底是什么意思?你如何测试阵列的更新?请向我们展示不起作用的代码,而不仅仅是您怀疑是问题的代码。可以肯定的是,您只是没有在等待更新。
-
你的意思是数据库没有更新?
标签: javascript arrays node.js mongoose bluebird