首页 > 解决方案 > MongoDB:在数组中查找不是另一个集合中的_id的值

问题描述

在我正在使用的数据库中,有一个 的集合Users和一个Groups. 该Groups模型包含一个数组 ,user_ids它对应于_id各个用户的值。每个组都有一组不同的用户。

我的问题是,我不小心从Users集合中删除了一条记录,事实证明,如果某些代码引用了一个组,而该组又引用了该用户,这可能会导致崩溃。

所以我需要做的是,弄清楚如何以这样的方式查询 mongo,它会告诉我任何集合中的项目user_id不对应的内容。_idUsers

谁能建议可以做到这一点的代码,或者指出我应该使用的操作的正确方向?我对 Mongo 很陌生,所以很遗憾我还没有学到很多相关的术语。非常感谢您提供的任何帮助!

标签: mongodb

解决方案


从 users 集合中获取 id 列表,然后使用 $nin 查找引用不存在用户的组。除非您拥有数百万用户,否则这应该可以很好地工作并且可以快速编码。


推荐阅读