我们有一个物联网设备,当用户与设备交互时,它会发送传感器读数。用户通常将多次与设备交互,每次交互产生传感器读数。然后,设备将每个传感器读数传输到后端API,但不保证顺序和及时性。
在后端API上,我们必须将所有传感器读数显示在同一个2分钟内发生的单个事件中,并使用窗口中第一个事件的时间戳记为事件添加时间戳。由于IoT设备没有订单或及时性保证,我们目前有一个架构,每个用户每天都有一个文档和一系列事件,而这些事件又包含一系列传感器读数。我们目前在每个传感器读数和应用程序代码中查询整个文档,根据现有的传感器读数和刚收到的新传感器确定正确的事件。
我们已经看到一些性能和锁定问题必须查询整个文档并在应用程序代码中处理此事件窗口并保存整个文档。有没有办法在mongodb中完全执行此事件窗口?什么样的模式可以为我们提供最高的写入吞吐量。