2014-05-14 3 views
1

즉, 두 번째 .find()이 첫 번째 .find()에 의해 반환 된 커서를 검색하도록 MongoDB .find()을 어떻게 연결할 수 있습니까?.find() 내의 MongoDB .find() 결과 집합

MySQL은 subquery을 지원합니다.

+0

사용할 수있는 기존 커서에서 체인입니다 '.find()'작업을 할 수 없습니다 없음. 그러나 실제 사용 사례는 무엇입니까? 대부분의 경우 "noSQL"과 마찬가지로 일반적으로 다른 대답이 있습니다. –

+0

@NeilLunn : 유감스럽게도 [정규식 문자 클래스에서 특정 문자를 사용하지 못하도록하는 MongoDB 셸의 버그] (https://jira.mongodb.org/browse/SERVER-13934)를 극복하고 있습니다. –

+1

그러면 실제로 모든 세부 사항을 질문에 추가 할 수 있습니다. 그렇다면 사람들이 실제로 링크 된 질문이 실제로 요구 사항을 충족시키지 않는 이유를 진정으로 이해할 수 있습니다. 본질적으로 한 문장 만 귀하의 질문에 있으며 당신이 실제로하려고하는 것을 설명하지 않습니다. –

답변

1

서브 쿼리와 조인은 매우 '관계형'이므로, 디자인을 재고하고 싶을 수도 있습니다. 어떤 경우에는, 직접 컬렉션을 가입 할 수 없습니다,하지만 당신은 $in, 예컨대 :

> foo = []; 
[ ] 
> db.Comment.find().forEach(function(rover) {foo.push(rover.UserId)}) 
> foo 
[ 
     ObjectId("535fd8e6eb596a27ec924d15"), 
     ObjectId("536a6479eb596a2a283f43e8"), 
     ObjectId("536a5fa4eb596a2a283f43de") 
] 
> db.User.find({"_id" : {$in : foo}}); 
{ "_id" : ObjectId("535fd8e6eb596a27ec924d15"), "FirstName" : "John", ... 
관련 문제