基于NodeJS中的MongoDB结果更新现有JSON属性值

时间:2018-02-05 03:43:59

标签: jquery json node.js mongodb

我有一个类似下面的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
                        }
                    })
                }); 
            });

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);
});