MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как мога да създам $or заявка за MongoDB с помощта на Java драйвера?

Вие сте прави, че „по подразбиране“ за указване на множество полета в заявка е, че всяко поле служи като условен филтър и следователно е операция И.

Можете да изпълнявате MongoDB заявки с клауза OR, като използвате операнда $or, който има следния синтаксис:

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

Където всяка клауза може да бъде заявка. $or не трябва да е операнд от най-високо ниво, но ако е MongoDB може да използва индекс за всяка отделна клауза.

Във вашия пример искате да завършите с тази заявка:

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

Което може да бъде конструирано в Java чрез :

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. Как да ограничите максималната референция на родителския възел в mongodb

  2. Как да обработваме тирета в дефинициите на GraphQL Schema

  3. Как да направите заявка с помощта на dot( . ) през Mongoose в Node.js и как да добавите празен масив

  4. Все още ли се поддържат ограниченията за уникалност на ниво поле в Mongo(ose)?

  5. BsonSerializationException възниква, ако името на елемента завършва с точка