sql >> Databáze >  >> NoSQL >> MongoDB

Jak mohu vytvořit dotaz $or pro MongoDB pomocí ovladače Java?

Máte pravdu, že "výchozí" pro specifikování více polí v dotazu je, že každé pole slouží jako podmíněný filtr, a tedy je to operace AND.

Dotazy MongoDB můžete provádět s klauzulí OR pomocí operandu $or, který má následující syntaxi:

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

Kde každá klauzule může být dotazem. $or nemusí být operand nejvyšší úrovně, ale pokud je to MongoDB, může použít index pro každou samostatnou klauzuli.

Ve vašem příkladu chcete skončit s tímto dotazem:

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

Které lze zkonstruovat v Javě pomocí :

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. MongoDb:Jak importovat data výpisu ze souboru .gz?

  2. MongoDB $project:Zachovat předchozí pole kanálu

  3. MongoDB - Použijte agregační rámec nebo mapreduce pro shodu pole řetězců v dokumentech (shoda profilu)

  4. Jak používat agregaci MongoDB pro stránkování?