Jak dokładnie działa klucz startowy i klucz końcowy w CouchDB?

Pracuję z bazą danych lokalizacji w CouchDB. Stworzyłem widok, w którym mój klucz jest tablicą z zaokrąglonymi wartościami szerokości i długości geograficznej. Teraz wybieram następujące warunki:

Startkey: [ 52.34, 4.883 ]
Endkey:   [ 52.37, 4.903 ]

Spodziewam się, że otrzymam tylko dokumenty o szerokości między 52,34 a 52,37. I długość geograficzna między 4,883 a 4,903.

Otrzymany wynik:

[ 52.358, 4.919 ]
[ 52.358, 4.919 ]
[ 52.362, 4.861 ]
[ 52.362, 4.861 ]
[ 52.362, 4.861 ]

Jak zapewne zauważyłeś, w pierwszym wyniku długość geograficzna jest większa niż długość geograficzna klawisza końcowego, 4.919.

Teraz wiem / przeczytałem gdzieś, że otrzymam pewne wartości, które są poza zakresem drugiego elementu w tablicy. Ale jak to możliwe, że pierwszy przedmiot już nie spełnia kryteriów?

Pooglądałem trochę i nie mogę znaleźć wyjaśnienia na temat startkey / endkey jako tablicy. Kto może mi wyjaśnić, w jaki sposób CouchDB przegląda dokumenty i określa, kiedy „zacząć” i kiedy „zakończyć”?

questionAnswers(1)

yourAnswerToTheQuestion