MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

mongo $slice zapytanie odwrotny indeks poza zakresem

TAk. W ten sposób javascript Array.prototype.slice() działa metoda, która jest wewnętrznie używana przez mongodb.

Zgodnie ze Specyfikacją języka ECMAScript® ,

W Twoim przypadku relativeStart is -10 ,k = max((-10+5),0), k = 0; (gdzie, 5 to długość Twojej tablicy).

Stąd k lub skip zawsze będzie 0 , w takich przypadkach.

Tak, operator projekcji działa w ten sposób. Chyba że inclusion lub exclusion jest wyraźnie określony w parametrze projekcji, cały dokument jest pobierany za pomocą operatorów projekcji, takich jak $slice ,$elemmatch stosowane.

db.items.findOne({},{"_id":1,"List": { "$slice": [-10, 3 ] }})

zwróci:

{ "_id" : ObjectId("542babf265f5de9a0d5c2928"), "List" : [ 1, 2, 3 ] }

Drugi parametr findOne() metoda jest not only for simple projection celu, pola nie przewidywane, tylko jeśli którekolwiek z field nazwy mają wartość 0 lub 1 przeciwko nim. Jeśli nie, zwracany jest cały dokument. Jeśli jakiekolwiek pole ma projection operator do zastosowania, byłoby applied i projected .

Mechanizm projekcji wydaje się dzieje się w następujący sposób, za każdym razem, gdy $slice zaangażowany jest operator.

  • Domyślnie wszystkie pola zostaną uwzględnione w projekcji.
  • Domyślnie wszystkie pola, których wartości są wyprowadzane na podstawie operatora projekcji, $slice , jeśli są prawdziwe , są zawsze wyświetlane, niezależnie od poniższych.

Kroki mające na celu wykluczenie lub włączenie.

  • Lista pól określonych w parametrze projekcji jest gromadzona w określonej kolejności.
  • Tylko dla pierwszego napotkanego pola z wartością „0” lub „1” :Jeżeli pole ma wartość '0' - to jest wykluczone, a wszystkie pozostałe pola są oznaczone do uwzględnienia. Jeżeli pole ma '1' - to jest uwzględniane, a wszystkie pozostałe pola są oznaczane do wykluczenia.
  • W przypadku wszystkich kolejnych pól są one wykluczane lub uwzględniane na podstawie ich wartości.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wyświetlanie dokumentów MongoDB za pomocą HTML

  2. Zapytania Mongoose dotyczące stanu daty nie przynoszą rezultatów, powłoka MongoDB działa

  3. Pytanie o parametr safe=True do operacji aktualizacji mongodb

  4. MongoDB $przełącznik

  5. next.js i atlas mongodb - uzyskiwanie połączeń % skonfigurowanego limitu przekroczyło 80 alertów