저는 mongodb 2.4.3을 호출자와의 거리를 기반으로 프로파일을 반환하는 소셜 네트워킹 응용 프로그램에 사용했습니다.
db.profiles.find({loc: {$nearSphere: <lon, lat>}} ...).skip(0).limit(100);
나는 그러나 그것은 일종의 거리, 결과 세트를 수행하는 $ nearSphere 연산자는 100 개 개의 결과를 반환하는 것을 알고 내가 필요하고, 내 응용 프로그램 페이지의 결과 때문에하는 다음과 같이 나는 $ nearSphere 연산자를 사용 100의 배수 어쨌든, 난 그냥 다음과 같이 건너 뛰기 값을 증가시켜 거리만큼 프로파일 목록을 반복 할 수 있었다 :
db.profiles.find({loc: {$nearSphere: <lon, lat>}} ...).skip(100).limit(100);
db.profiles.find({loc: {$nearSphere: <lon, lat>}} ...).skip(200).limit(100);
db.profiles.find({loc: {$nearSphere: <lon, lat>}} ...).skip(300).limit(100);
이 약 1 년 동안 좋은 일하고있다. 나는 최근에 2.6.1로 업그레이드했고, 이제는 값을 건너 뛰어도 상관없이 처음 100 개의 결과 만 반환된다는 것을 알게되었습니다. 이후이 기능을 다시 사용하려면 v2.4.3으로 다운 그레이드해야했습니다.
제 질문은이 동작이 2.4.3의 버그입니까, 2.6.1의 버그입니까? 문서에서는 내가 알 수있는 한이 변경 사항을 언급하지 않습니다. 2.4.3의 버그가 발생했을 때 동일한 기능을 유지하면서 적응하는 가장 좋은 방법은 무엇입니까? 감사!
'2dsphere'색인 또는 '2d'를 사용합니까? – surui
호기심에서 벗어난 2 차원 색인 –
을 사용하고 있는데 왜이 색인에 2 차원 색인을 사용하지 않고 2 차원 색인을 사용합니까? – surui