mongodb-从列表中的ID访问记录

时间:2012-08-31 12:58:03

标签: mongodb

我使用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用于给定文档的所有类似文档。现在我在doc_id列表中使用for循环实现它,为每个doc_id发出数据库请求。有没有微妙的方法来完成这项工作。

1 个答案:

答案 0 :(得分:3)

您可以使用单个查询,具体如下:

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

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