MongoDB聚合基于另一个集合中的字段的条件更新集合字段

时间:2021-01-04 20:20:03

标签: aggregation-framework

我正在尝试在 node.js 中运行 MongoDB 聚合,其中一个集合的字段将根据一个字段是否在另一个集合中的两个日期值之间进行更新。

用户集合会记录玩家的姓名、执行操作的用户以及操作本身(“添加”或“删除”)。

user_collection = [

     {
          player: fred, 
          user: jim@gmail.com,
          status: add,
          date: 01/01/2021
     },
     {
          player: fred,
          user: jim@gmail.com
          status: drop
          date: 01/09/2021
     },
     {
          player: fred,
          user: bill@gmail.com,
          status: add
          date: 01/09/2021
     }
]

玩家集合会记录玩家、他们吃的墨西哥卷饼的数量以及他们吃这些墨西哥卷饼的日期。

player_collection = [

     {
          player: fred,
          burritos_eaten: 20,
          date: 01/03/2021
     },
     {
          player: fred,
          burritos_eaten: 30
          date: 01/11/2021
     }
]

当我运行聚合时,我希望能够根据用户在“添加”和“删除”日期之间的特定时间在 player_collection 中获取用户字段。

本质上,我想要的输出如下:

player_collection = [

     {
          player: fred,
          burritos_eaten: 20,
          date: 01/03/2021,
          user: jim@gmail.com
     },
     {
          player: fred,
          burritos_eaten: 30
          date: 01/11/2021,
          user: bill@gmail.com
     }
]

有没有办法用 MongoDB 做到这一点(不会非常低效)?这些收藏显然将包含比上述示例更多的玩家和用户。如果我正在处理关系数据帧(连接两个数据帧,按日期排序和向前填充用户是我的想法),我有一个关于如何在 Python 中执行此操作的想法,但不知道从哪里真正开始使用 MongoDB。< /p>

感谢您的帮助!

0 个答案:

没有答案
相关问题