![]() |
1
1
下面是我可以使用聚合命令做的事情。
它的作用是:
聚合依据
然后找到第一个和最后一个
以下是此命令的结果
希望这有帮助。 |
![]() |
2
0
首先,我想你需要保留偏好的历史记录?如果没有,您可以简单地用每个人的新偏好更新现有文档,然后就可以上路了。 如果您需要历史记录,您必须在单个文档中捕获Bob的所有首选项,或者您应该为Bob的每个首选项创建一个新文档。如果可能有很多首选项更新,那么将首选项推入数组是一种糟糕的模式设计,因为您不知道文档会增长到多大。 这可以通过几种方式实现。 您应该包含带有时间戳或版本的字段。例如:
下次bob更新首选项时,只需插入一个新文档,内容如下:
然后,当您查询最新的首选项时,只需执行以下操作:
这有利于查找最新的首选项,但不利于查找以前的首选项。当您为每个用户存储多个文档时,它还有相当多的额外数据。 另一种方法可以是将当前偏好存储在字段中,然后将先前偏好存储在数组中:
通过这种方式,您可以获得鲍勃当前的偏好以及他过去的偏好记录,只需使用一个简单的:
现在是额外的部分-一旦首选项被更新,你是否需要做些什么,例如Bob更新他的首选项会在MongoDB中引发某种触发事件?这需要在应用程序中处理,因为mongodb既不支持触发器,也不支持更改通知API。 |
![]() |
Plup · 连接失败时,PyMongo异步客户端未引发异常 6 月前 |
![]() |
Yusuf Damista · 将mongodb节点代码转换为php 7 月前 |
![]() |
ian12_ · 客户端未定义,无法使用mongodb驱动程序连接到数据库 10 月前 |
![]() |
Sachin · Spring Session响应MongoDB-如何处理属性 10 月前 |
![]() |
sachin p · MongoDB docker的默认用户和密码 10 月前 |