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 を取得したいと考えています。現在、doc_id のリストに対して for ループを使用して実装し、doc_id ごとにデータベースにリクエストを送信しています。この作業を行うための微妙な方法はありますか。

4

1 に答える 1

3

次の行に沿って、単一のクエリを作成できます。

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

しかし、親ドキュメントを照会するときに、これらの ID を何らかの方法でドキュメントに「展開」する方法が必要な場合は、それを行うことはできません。完全なドキュメントをその配列に格納しない限り(これは高価であるか不可能である可能性があります (結果のドキュメントが最大ドキュメント サイズを超える場合))。

于 2012-08-31T13:00:32.927 に答える