MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Aggregationsframework und Java-Treiber sorgen dafür, dass die $or-Bedingung funktioniert

Überprüfen Sie die Dokumentation, in der Sie wahrscheinlich $or als Pipeline-Operator verwenden, aber es gibt keinen solchen Operator:DOC

Stattdessen können Sie einen $match-Operator konstruieren, der eine or-Klausel enthalten kann

So etwas in der Shell:

db.collection.aggregate({$match:{$or:[{someKey:'someValue'},{someOtherKey:'someOtherValue'}]}})

Was Sie ändern müssen, ist in JAVA etwa so:

Ändern Sie dies:

DBObject matchCriteria = new BasicDBObject("$or", or);

Dazu:

DBObject orCriteria = new BasicDBObject("$or", or);
DBObject matchCriteria = new BasicDBObject("$match", orCriteria);