繁体   English   中英

根据NodeJS中的MongoDB结果更新现有的JSON属性值

[英]update existing JSON property value based on MongoDB Results in NodeJS

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

通过使用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);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM