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

Aktualizacja i wyszukiwanie struktury osadzania Mongodb?

  1. Błąd składni jest spowodowany tym, że musisz użyć cudzysłowów wokół services.port_info
  2. Jednak $elemMatch w polach zagnieżdżonych jest obecnie nieobsługiwany w każdym razie
  3. Na szczęście nie potrzebujesz $elemMatch dla tego rodzaju zapytania

To powinno wystarczyć:

db.hosts.find({ ip : "127.0.0.1"}, { "services.port_info.product" : "ssh" });

$elemMatch jest wymagane, jeśli chcesz dopasować wiele kryteriów wewnątrz obiektu tablicy, na przykład „znajdź wszystko, gdzie port to 9000, a protokół to UDP”. To byłoby nieobsługiwane przez twoją strukturę danych. Nie wiem, dlaczego port_info jest tablicą obiektów (może w niepewnych sytuacjach, w których port może należeć do dwóch różnych usług?) - gdyby był to pojedynczy obiekt, nawet $elemMatch będą obsługiwane.

Pamiętaj też, że takie zapytanie zawsze zwróci cały obiekt.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak sumować tablice z różnych dokumentów w MongoDB Aggregation?

  2. Jak czytać kolekcję, która zależy od innej w Meteor

  3. Jak zrobić upsert z MongoDB 2.0?

  4. mongo:zwrot nie jest równy count()

  5. Mongodb nie może się uruchomić w Ubuntu 15.04