数据库插入数据,实时渲染到前端

Database insert data, real-time render to frontend

想法是水中的传感器将数据发送到我的数据库,我希望数据实时发送到前端,换句话说:数据库更新,然后前端更新。

我使用的工具:

  1. MongoDB
  2. NodeJS
  3. 套接字 io
  4. ReactJS

它实际上工作正常,这是我处理实时数据流的主要代码

const Zips = require("./dataSchema");

io.on("connection", (socket) => {
    setInterval(()=>{
         Zips.find().then((result) => {
    socket.emit("output", result);
  });
    }, 5000)
});

#Zips 是模式使用猫鼬
我使用 setinterval 每 5 秒更新一次。

问题:

Socket-io 或 Mongodb 是否提供不需要 setInterval 或任何其他方式的函数或方法?

##编辑 11/8 射线显示文档有效。

解决方案:

io.on("connection",(socket)=>{
  const changeStream = Zips.watch()
  changeStream.on('change',(next)=>{
    if(next.operationType=="insert"){
      Zips.find().then((result) => {
           socket.emit("output", result);
        });
    }
  })
})

使用watch(),然后回调函数提供了很多数据可以跟踪。
文档:change streams