sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan kan jeg bygge en $or-forespørgsel til MongoDB ved hjælp af Java-driveren?

Du har ret i, at "standarden" for at angive flere felter i en forespørgsel er, at hvert felt fungerer som et betinget filter og dermed er en OG-operation.

Du kan udføre MongoDB-forespørgsler med en OR-sætning ved at bruge $or operanden, som har følgende syntaks:

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

Hvor hver klausul kan være en forespørgsel. $or behøver ikke at være en operand på øverste niveau, men hvis det er, kan MongoDB bruge et indeks for hver separat klausul.

I dit eksempel vil du ende med denne forespørgsel :

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

Som kan konstrueres i Java gennem :

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. Hvordan konfigurerer jeg mongodb til at fjerne gamle logfiler?

  2. Giver mongoose findOne på model et løfte?

  3. Er Redis TimeSeries det rigtige værktøj til at fange lysestager i aktiekurser

  4. Objekt #<MongoClient> har ingen metode 'åben'