如果mongoDB中的值为null,请进行api调用

时间:2018-08-28 21:34:03

标签: node.js mongodb mongoose mean-stack

我正在开发一个应用程序,并且正在使用MEAN堆栈。我使用MongoDB将值保存在数据库中。我想使用这些值进行API调用,但前提是值是null。现在它已经成功地从数据库中获取了这些值并调用了API,但我不知道如何检查该值是否为null,我已经尝试了所有方法,但是我认为我对NodeJS并不完全了解,是异步的。这是有效的代码,但不检查值是否为null:

var makeApiCalls = function (workerId) {
    var Model = mongoose.model('Tweet'.concat(workerId), Tweet.tweetSchema);
    return Model.find({},{ _id: 1, message: 1}).then(messages =>
        Promise.all(
            messages.map(({ _id, message }) =>
                api.sentiment(message).then(result =>
                    Model.findOneAndUpdate({ _id }, { resultOfTheCall: result }, { new: true })
                        .then( updated => { console.log(updated); return updated })
                )
            )
        )
    )
};

猫鼬模型有一个名为resultOfTheCall的字段,我需要检查该值是否为null,仅在这种情况下,我要使用字段消息对API进行调用。

这是消息之一的console.log:

{ 
  _id: 5b85c83b413a2b1473e7122a,
  date: 'Tue Aug 28 22:10:02 +0000 2018',
  message: 'la gente quiere y no viene',
  resultOfTheCall: 0.5931016939587707,
  __v: 0 }

1 个答案:

答案 0 :(得分:1)

在进行this.searchTerms = new Subject<string>();之前,只需过滤邮件。

Promise.all