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

Jak w mongoDb usunąć element tablicy według jego indeksu?

Nie ma prostego sposobu na wyciąganie/usuwanie według indeksu tablicy. W rzeczywistości jest to otwarty problem http://jira.mongodb.org/browse/SERVER-1014 , możesz na niego głosować.

Rozwiązaniem jest użycie $unset, a następnie $pull:

db.lists.update({}, {$unset : {"interests.3" : 1 }}) 
db.lists.update({}, {$pull : {"interests" : null}})

Aktualizacja:jak wspomniano w niektórych komentarzach, to podejście nie jest niepodzielne i może powodować pewne sytuacje wyścigu, jeśli inni klienci odczytują i/lub zapisują między dwiema operacjami. Jeśli potrzebujemy, aby operacja była atomowa, moglibyśmy:

  • Odczytaj dokument z bazy danych
  • Zaktualizuj dokument i usuń element z tablicy
  • Zastąp dokument w bazie danych. Aby upewnić się, że dokument nie zmienił się od czasu jego przeczytania, możemy użyć aktualizacji, jeśli bieżący wzorzec jest opisany w dokumentacji mongo


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ostrzeżenie dotyczące łączenia się z MongoDB za pomocą serwera Node

  2. Kroki łączenia MongoDB i Solr za pomocą DataImportHandler

  3. 2 sposoby na usunięcie kolekcji w MongoDB

  4. MongoDB:Jak zdefiniować schemat?

  5. Sprawdź aktualną liczbę połączeń z MongoDb