跨集合、嵌套文档的 Mongo 分页查询

时间:2021-04-20 18:38:32

标签: database mongodb performance

在 mongodb 上,我有一个顶级文档集合(“TopLevelDocument”),其中引用了另一个集合(“SecondaryCollection”)中的文档,它看起来像这样:

TopLevelDocument {
 id: UUID,
 groupOfReferences:[{secondaryCollectionDocumentId: UUID},{secondaryCollectionDocumentId: UUID},{...}]
}

"groupOfReferences" 的长度未知

使用“secondaryCollectionDocumentId”我可以查询这些文档的“SecondaryCollection”,它返回“SecondaryCollectionDocument”。

在“SecondaryCollectionDocument”中,我有另一组不同数据库的复制文档(“replicatedDocuments”):

SecondaryCollectionDocument{
 id: UUID,
 replicatedDocuments:[{...Replica of another document in a different database}, {...}]
}

“replicatedDocuments”的长度未知

我正在构建一个查询,其中我采用“TopLevelDocument”ID 并返回与这些“TopLevelDocuments”相关联的所有“replicatedDocuments”

现在,我在“TopLevelCollection”上为 Id 运行一个查找,然后在“SecondaryCollection”上为“secondaryCollectionDocumentIds”运行另一个查找,并将所有“replicatedDocuments”组合在一个数组中,但我觉得这是效率低下。

我有两个问题:

  • 是否有使用 mongo 执行此查询的有效方法?
  • 如何对“replicatedDocuments”响应进行分页?

0 个答案:

没有答案