我有一个事件集合,我将通过它来查找特定事件的类别,然后使用 $push 语句更新我的其他集合。问题是当两个事件具有相同的类别时,它会创建一个副本,这是我不想要的。
我知道 upserts,但我不确定它们是否是最好的解决方法?当谈到如何实际编写与“$push”语句一起使用的 upsert 时,我有点困惑。
这就是我的更新现在的样子:
self.users.update({"user_id": event['userid']}, {'$push': {'campaigns': UserCampaign}})
..在哪里:
UserCampaign = {
"id": campaign['id'],
"name": campaign['name']
}
“UserCampaign”时不时会充满相同的信息,由于我的收藏可能非常庞大,我希望尽可能高效地完成这项工作。
TLDR;我想更新使用“推送”找到的文档中的数组,而不会有重复的风险。