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

MongoDB wyszukuje każdy dykt na liście w kolekcji

Chociaż wspomniano, że rzeczywiście $and operator nie jest wymagany, w obu formach nie jest to żądane zapytanie. Rozważ następujące kwestie:

db.user.find_one({ 'names.firstName': 'alice','names.lastName': 'jones' })

To w rzeczywistości tak dopasuj podany rekord, ponieważ oba elementy mają wartości „firstName” równe „alice” i „lastName” równe „jones”. Ale oczywiście problem jest prosty, ponieważ w tablicy nie ma rzeczywistego elementu, który zawierałby dokument podrzędny dla obu tych wartości.

Aby dopasować miejsce, w którym element tablicy zawiera „oba” podane kryteria, należy użyć $elemMatch operator. Stosuje to warunek zapytania do "elementów" tablicy.

db.user.find_one({ 
    'names': { '$elemMatch': { 'firstName': 'alice','lastName': 'smith' }
})

I oczywiście, jeśli spróbowałeś "alice" i "jones", to nie byłoby to zgodne, ponieważ żaden element faktycznie nie zawiera tej operacji.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Przekaż plik .js do mongo db.eval()

  2. MongoDB Grupuj według pól, policz i posortuj według opisu

  3. C# + MongoDB — ObjectId bez użycia MongoDB DataTypes/Attributes

  4. mongoDB, nie można odczytać z pliku konfiguracyjnego -- config w innym folderze / Odinstalować?

  5. Proste planowanie konserwacji okien w klastrach baz danych