首页 > 解决方案 > 如何在 NodeJS 中等待来自 MongoDB 的新数据?

问题描述

我正在做一个聊天项目,NodeJS 必须等待 25 秒才能获得来自 MongoDB 的新数据,还有其他选择吗?

while(true) {
    db.messages.find({
    ...
    }).then(result) => {
        if (result.length > 0) {
            return result;
        }
    })
}

更新:

let secs = 0;
const iv = setInterval(() => {
        secs++;

        db.messages.find({
        ...
        }).then(result) => {
            if (result.length > 0) {
                clearInterval(iv);

                res.json(result);
                return;
            }
        });

        if (secs === 25)
           clearInterval(iv);
}, 1000);

标签: node.jsmongodbexpress

解决方案


看看changeStream

const collection = db.collection('messages');
const changeStream = collection.watch();
changeStream.on('change', next => {
  // process next document
});

推荐阅读