2016-04-15 20 views
0

Gibt es eine Möglichkeit, allowDiscUse: true hinzuzufügen, wenn jongo verwendet wird, um MongoDB abzufragen? Ich fand heraus, dass solche Fehler - `Sort Speichergrenze von 104857600 Bytes überschritten, aber nicht auf externe Sortierung aktiviert. Vorgang wird abgebrochen. Pass allowDiskUse: true in entscheiden kann so verhindert werden, dass Ihr Aggregat wieallowDiscUse bei Verwendung von Jongo

aggregate([{$sort:...},{$$skip:...}...],{allowDiscUse: true}) 

aber soweit ich in Jongo siehe Aggregate Klasse sieht gilt nur Pipeline selbst, die Sie dann mit as ausführen kann Methode.

MongoCollection catalogCollection = mongoHolder.getCatalogJongo(param.id, false); 

Aggregate aggregation = catalogCollection.aggregate("{$match: #}", query.build()); 
aggregation.and("{$skip: #}", param.offset); 
aggregation.and("{$limit: #}", param.limit); 
List<BasicDBObject> result = aggregation.as(BasicDBObject.class); 

Gibt es eine Möglichkeit, dass die Parameter der Weitergabe ohne sonst von Jongo Umstellung auf etwas Mongo?

Antwort

1

können Sie Optionen Methode verwenden:

AggregationOptions options = AggregationOptions.builder().allowDiskUse(true).build()); 

List<BasicDBObject> result = collection.aggregate("...").options(options).as(BasicDBObject.class); 

Siehe Jongo Aggregate Testklasse ein funktionierendes Beispiel https://github.com/bguerout/jongo/blob/20ed6e79c0801ae1af2dc3d4fee240e201ad93dd/src/test/java/org/jongo/AggregateTest.java#L120

+0

hmm, so scheint es, um zu sehen, dass ich eine alte Version von jongo verwenden, I bis 1,2 eingeschaltet und jetzt Ich kann das einstellen, sollte helfen, denke ich! Vielen Dank! –

+0

BTW 1.3.0 wurde letzte Woche veröffentlicht. –