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

Usuwanie elementu tablicy w mongoDB na podstawie pozycji elementu

Z dokumentacji:

{ $pull : { field : {$gt: 3} } } removes array elements greater than 3

Przypuszczam więc, że na razie możesz zrobić coś takiego:

{ $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position 

Lub spróbuj zaktualizować za pomocą operatora pozycji , przypuszczam, że powinno być mniej więcej tak:

  { $pull : "field.4" } 

  { $pull : {"field.$": 4}}

To tylko sugestia, ponieważ nie mogę tego teraz przetestować.

Aktualizacja:

Wygląda na to, że nie możesz tego zrobić dobrze, wiedząc w jednym kroku (jest taki błąd w jira )

Ale możesz usunąć za pomocą unset elementu na pozycji i wyciągnąć elementy o wartości null:

{$unset : {"array.4" : 1 }}
{$pull : {"array" : null}}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $przytnij

  2. Suma zagregowana MongoDB dla każdego klucza w poddokumencie

  3. Jaki jest zalecany odpowiednik usuwania kaskadowego w MongoDB dla relacji N:M?

  4. Tworzenie widoku mongo, który zależy od aktualnego czasu

  5. Wczytywanie danych początkowych podczas uruchamiania aplikacji za pomocą Spring Data MongoDB