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ć”?