J'utilise la requête searchQuery
ci-dessous pour appliquer une expression régulière.Opérateur logique AND sur deux listes d'opérateurs OU
BasicDBObject searchQuery = new BasicDBObject();
Pattern regex;
BasicDBList or = new BasicDBList();
for (String s : statistics) {
regex = Pattern.compile(s);
DBObject statRegex = new BasicDBObject("_id", regex);
or.add(statRegex);
}
searchQuery.put("$or", or);
qui trouve des résultats où le champ _id
, a une valeur de l'une des chaînes dans une liste de tableau appelé statistics
. (Par exemple « Error », « délai d'attente », ResponseTime » ...).
Comment la base de données que je pourrais interroger via deux listes or
. Par exemple, je veux correspondre où le champ _id
est égal à une chaîne contenue dans statistics
et où le champ name
est une chaîne contenue dans networks
.
de la lecture d'autres sujets, je pense que la solution pourrait être avec $elemMatch
bien que j'ai une compréhension limitée de la façon dont les requêtes avancées travailler dans mongoDB
.