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

Jak mogę zbudować zapytanie $lub dla MongoDB za pomocą sterownika Java?

Masz rację, że "domyślnym" przy określaniu wielu pól w zapytaniu jest to, że każde pole służy jako filtr warunkowy, a zatem jest operacją AND.

Możesz wykonywać zapytania MongoDB z klauzulą ​​OR, używając operandu $or, który ma następującą składnię:

db.col.find({$or:[clause1, clause2]})

Gdzie każda klauzula może być zapytaniem. $albo nie musi być operandem najwyższego poziomu, ale jeśli tak, MongoDB może użyć indeksu dla każdej oddzielnej klauzuli.

W swoim przykładzie chcesz zakończyć z tym zapytaniem :

db.col.find({$or:[{"post_title", regex}, {"post_description", regex}]});  

Które można zbudować w Javie poprzez:

DBObject clause1 = new BasicDBObject("post_title", regex);  
DBObject clause2 = new BasicDBObject("post_description", regex);    
BasicDBList or = new BasicDBList();
or.add(clause1);
or.add(clause2);
DBObject query = new BasicDBObject("$or", or);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Proste sprawdzanie nazwy użytkownika i hasła mongoDB w PHP

  2. Przechowywanie dużego pliku 100 MB w Mongodb

  3. Jak mogę posortować kolekcję Meteor według czasu wstawienia?

  4. Suma poddokumentów w Mongoose

  5. Jak zainicjować dane zależne w Node/MongoDB?