MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Le cadre d'agrégation MongoDB et le pilote Java font fonctionner $or condition

Vérifiez les documents que vous utiliserez probablement $ ou en tant qu'opérateur de pipeline, mais il n'y a pas un tel opérateur :DOC

Au lieu de cela, vous pouvez construire un opérateur $match qui est à l'intérieur peut contenir une clause or

Quelque chose comme ça dans le shell :

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

Ce que vous devez changer ressemble à ceci en JAVA :

Modifiez ceci :

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

À ceci :

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