sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik een $or-query voor MongoDB bouwen met behulp van het Java-stuurprogramma?

U hebt gelijk dat de "standaard" voor het specificeren van meerdere velden in een query is dat elk veld dient als een voorwaardelijk filter en dus een EN-bewerking is.

U kunt MongoDB-query's uitvoeren met een OR-clausule door de $or-operand te gebruiken die de volgende syntaxis heeft:

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

Waar elke clausule een query kan zijn. $or hoeft geen operand op het hoogste niveau te zijn, maar als dit wel het geval is, kan MongoDB een index gebruiken voor elke afzonderlijke clausule.

In jouw voorbeeld wil je eindigen met deze vraag:

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

Die in Java kan worden gebouwd via:

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. Upserting in Mongo DB en het ID-probleem

  2. Tijdscomplexiteit van zadd wanneer de waarde een hogere score heeft dan de hoogste score in de beoogde gesorteerde set

  3. Maak knooppuntenboom met recursieve tabel met Express en Mongo

  4. Redis + ActionController::Live threads sterven niet af