Frühjahr Mongo Kriterien Abfragen zweimal das gleiche Feld

Ich versuche Abfrage mongodb mit spring. Wir haben eine Auflistung, die hat einen Baum und enthalten eine Liste der Elemente als Baum Weg (so können wir leicht durchqueren den Baum). Wir haben eine Abfrage zurückgeben muss, werden alle Kind-Knoten von einem bestimmten Knoten. Die Abfrage wird basierend auf der Auswahl aller Knoten, die den Knoten (parent) in dem Pfad liegen eine Ebene tiefer als das übergeordnete Objekt (Ebene). Unsere Kriterien ist wie folgt:

Criteria.where("treePath").in(parentId).and("treePath").size(level)

Ach, wenn wir nennen das auf mongodb, erhalten wir die folgende Ausnahme:

org.springframework.Daten.mongodb.InvalidMongoDbApiUsageException: Aufgrund
Einschränkungen der com.mongodb.BasicDBObject, Sie können nicht hinzufügen ein
zweite 'treePath' expression angegeben als " treePath : { "$size" : 2}'.
Kriterien bereits enthält 'treePath : { "$" : [
"50137df5f49f9b4a6481d639"]}'.

Gibt es andere Vorschläge, wie man das gleiche zu erreichen? Eine option, die ich dachte, war zu mongodb-Abfrage direkt. Ich habe versucht,

String command = "{findAndModify:\"Task\",query:{$and:[{treePath:\"5013a79a36600872ecf4dba8\"},{treePath:{$size:2}},{order:{$gte:0}}]},update:{$inc:{order:1}}}";
CommandResult commandResult = mongoTemplate.executeCommand(command);

Aber das aktualisiert nur den ersten Datensatz und ich muss Sie alle aktualisiert.

Dank!

InformationsquelleAutor der Frage checklist | 2012-07-28

Schreibe einen Kommentar