2

我使用 mongodb 作为我的后端。我必须在每个文档的列表中存储类似的文档 ID。这是我收藏中的示例记录。

{
   "_id": ObjectID("...."),
   "doc_name": "my_doc1",
   "doc_id": "doc_id_1",
   "similar_docs": ["doc_id_6", "doc_id_86", "doc_id_93"],
   "more_fields": "..."
}

这样我就可以跟踪每个文档的相似文档。现在我希望为给定文档的所有类似文档提供完整的 json。现在,我正在使用 for 循环在 doc_id 列表上为每个 doc_id 向数据库发出请求来实现它。有什么微妙的方法可以完成这项工作。

4

1 回答 1

3

您可以有一个查询,类似于以下内容:

db.collection.find({_id: {$in: [doc_id1, doc_id2, ..]}});

但是,如果您想要一种在查询父文档时以某种方式将这些 id 以某种方式“扩展”到文档中,那么您就无法做到这一点。除非您完整文档存储在该数组中(这可能很昂贵或不可能(如果生成的文档超过最大文档大小))。

于 2012-08-31T13:00:32.927 回答