2012-08-31 3 views
1

나는 내 백엔드로 mongodb를 사용하고 있습니다. 비슷한 문서 ID를 각 문서의 목록에 저장해야합니다. 다음은 내 컬렉션의 샘플 레코드입니다.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에 대한 데이터베이스 요청을 구현하고 있습니다. 이 작업을 수행하는 미묘한 방법이 있습니까?

답변

3

이러한 라인을 따라 단일 쿼리, 뭔가 할 수 있습니다 :

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

을하지만 부모 문서에 대해 쿼리 할 때 어떻게 든 문서에 그 ID를 "확장"할 수있는 방법을 원한다면, 당신은 할 수 없다 그. 전체 문서를 해당 배열에 저장하지 않으면 (결과 문서가 최대 문서 크기를 초과하는 경우 비용이 많이 들거나 불가능할 수 있음)).

관련 문제