【发布时间】:2021-08-18 16:32:37
【问题描述】:
我想从一个集合(Collection1)中删除与其他集合(Collection2)不匹配的文档。
collection1 文档 - {_id: <autogen>, items: [{key:'key', ...}}]
collection2 文档 - {_id: 'key', action: {key1:'key1', ...}}, {_id: 'non_matching_key', action: {key1:'key1', ...}}
删除 collection2 中的所有文档,其中 collection1 中的 items.key 与 collection2 中的 _id 不匹配。参考上面的例子,一个键值“non_matching_key”的文档应该从collection2中删除。在 collection2 中会有类似的文档,比如 _id 值为 'non_matching_key' 的文档。
我认为的方法是标记和扫描。
- 我将在 collection2 文档中添加用于匹配 id 的列(在 collection2 中,在 collection1 中带有 items.key)。这是标记步骤
- 从 collection2 中删除不存在新添加列的所有文档。这是扫描步骤。
您能否告知是否有更好的方法?
谢谢,
【问题讨论】:
标签: mongodb mongodb-query