我有一个类似下面的JSON
var outputJson = [
{
'Product' : 'TV',
'isSelected': 0
},
{
'Product' : 'Radio',
'isSelected': 0
},
{
'Product' : 'Book',
'isSelected': 0
},
{
'Product' : 'Watch',
'isSelected': 0
}
]
现在我的目标是找到用户是否在MongoDB中有任何此类产品,如果是,我想更新isSelected值来自" 0"到" 1"。我如何做到这一点,下面是我想要做但我的JSON没有更新
outputJson.forEach(function(key,value){ wishlistData.find({userID:req.user.id}, function(err,data{ data.forEach(function(k,i){ if (data[i].product=== outputJson[value].Product){ outputJson[value].isSelected = 1 } }) }); });
答案 0 :(得分:0)
通过使用Promise我的问题得到解决
Promise.all(outputJson.map(function(i,k) {
return wishlistData.findOne({userID: req.user.id, product: i.Product}).then(function(data, err) {
if (data !== null) { // if it actually found a match
i.isSelected = 1;
}
});
})).then(function() {
console.log(outputJson);
});