MongoDB-如何使所有文档不被其他集合中的任何文档所引用

时间:2019-11-27 18:24:12

标签: database mongodb

我们有两个集合,TeamsMatches。每次报告比赛时,都会在该集合中保存一个新文档,并将其添加到团队文档中的数组中(teams [i] .matches)。 我们系统中一个现已解决的错误导致新的Matchs文档未在其各自的Teams文档中引用。 是否有Mongo DB 3.6.9的查询可以帮助我们找到小组中未提及的比赛?

1 个答案:

答案 0 :(得分:0)

使用$lookup,聚合管道可以为您提供帮助。

  • $lookup提取与from "Teams"的{​​{1}}相匹配的文档pipeline
  • $match创建对应于let: { match_id: "$_id" }的{​​{1}}的变量match_id
  • Match表达式仅将_id$match保留在Teams的{​​{1}}数组中。
  • match_id存储Team来验证先前的matches
  • as: "matches"步骤之后的最后Team$match数组为空($match没有$lookup
matches

这已通过以下收集模板和Mongo playground在线编辑器进行了测试:

Matches

结果输出为:

Teams
相关问题