2014-11-19 5 views
1

한 필드에 약 7k DBRefs가있는 문서가 다른 개체에 있습니다. DBRef 필드를 쿼리 할 때 돌아 오는 개체 수를 제한하고 싶지만이를 수행하는 확실한 방법을 찾을 수 없습니다. 라인 2 MongoEngine에MongoEngine : DBRef의 응답 수를 제한합니다.

project = Project.objects.find({'id': 1}) 
users = project.users[:10] 

쿼리는 모든 사용자를 검색하기 위해 수행뿐만 아니라 첫번째 (10) 내가 첫 번째 열을 검색하는 쿼리를 제한하기 위해 무엇을 할 수 있는가?

답변

2

사용자 =의 project.users [10]

이 조작 mongodb 의해 반환 된 모든 7k DBRefs 값을 갖는 users 배열을 수행하는 클라이언트 측 연산이다.

처음 10 개만 검색하도록 쿼리를 제한하려면 어떻게해야합니까?

당신은 단지 users 배열의 첫 번째 10 요소를 선택하기 위해 projection 작업을 포함해야합니다.

Project.objects.find({"id": 1},{"users":{"$slice":10}}) 

MongoEngine의 구문 :. MongoEngine에서

Project.objects(id=1).fields(slice__users[0,10]) 
+2

는 제 Project.objects (ID = 1) .fields (slice__users [0,10]) '을 수행 할 필요가()' – tgandrews

+1

감사 info.Have 내 대답 wrt 귀하의 의견을 업데이 트에 대한. – BatScream

0

정확하게 이해하면 한 필드의 일부만 반환 할 수 없습니다. 반환 할 필드를 선택하여 선택할 수 있지만 한 필드의 일부를 지정할 방법이 없습니다.