Experten.MongoDB allowDiskUse funktioniert nicht ..
Ich bin neu in MongoDB, aber weiß genug, um mich selbst in Schwierigkeiten .. Fall in Punkt:
db.test.aggregate(
[
{$group: {_id: {email: "$email", gender: "$gender"}, cnt: {$sum: 1}}},
{$group: {_id: "$_id.email", cnt: {$sum: 1}}},
{$match: {cnt: 2}}
],
{allowDiskUse : true}
)
und egal, welche Variationen ich versuche, halte ich den gleichen Fehler ("Pass allowDiskUse: true in opt "):
Fehler (" Drucken Stack Trace ") @: 0() @ src/mongo/shell/utils.js: 37 ([object Array], [object Object ]) @ src/mongo/shell/sammlung.js: 866 @ (shell): 7
Uncaught Ausnahme: Aggregat fehlgeschlagen: {"errmsg": "Ausnahme: Fehler empfangen in Antwort von mongo1.mscnet.com:27017: {$ err: \" Speichergrenze für $ -Gruppe überschritten, , aber nicht zulassen, extern Sortieren. Pass allowDiskUse. Gilt zu entscheiden \ "Code: 16945}", "Code": 16945, "ok": 0 }
Zur Info: Ich bin mit Mongo 2.6
Verwenden Sie definitiv eine 2.6-Shell? Was gibt 'version()' in der 'mongo'-Shell zurück? Verwenden Sie auch Shell-Erweiterungen wie Mongo-Hacker? Wenn ja, würde ich versuchen, die Shell mit 'mongo --norc' zu starten, um ohne Erweiterungen zu testen. Ihre Syntax sieht korrekt aus, so dass ich vermute, dass Sie versehentlich eine Version des 'aggregate()' -Helfers verwenden, der keine Übergabe von Optionen an den Aggregationsbefehl unterstützt (die in der MongoDB 2.6-Shell hinzugefügt wurden). – Stennie
Ich benutze "MongoDB Shell Version: 2.6.5". Obwohl ich eine Drittanbieter-App namens RoboMongo (Version 0.8.4) verwendet. Ich benutze jetzt die CMD-Shell mit --norc .. und das scheint zu funktionieren. Ich denke, es war mein Client. Aber können Sie etwas für mich erklären? .. Die Aggregation passiert nicht auf meinem PC (tut es?). Ich sehe keine Netzwerk/CPU-Nutzung auf meinem PC. Was ist der "Client" und wie/warum beeinflusst er die Verarbeitung von Daten? Vielen Dank! –
Clients wie die 'mongo'-Shell oder Robomongo stellen [' aggregate() 'Helfer] (http://docs.mongodb.org/manual/reference/method/db.collection.aggregate/) zur Verfügung, um das Arbeiten zu erleichtern mit dem zugrunde liegenden Befehl [aggregate] (http://docs.mongodb.org/manual/reference/command/aggregate/), der auf Ihrem MongoDB-Server ausgeführt wird. In Versionen von MongoDB vor 2.6 hat der aggregierte Befehl keine Optionen unterstützt, so dass ältere Versionen der 'aggregate()' Helfer diese ignorieren. Wenn '--norc' für die 'Mongo'-Shell funktioniert, vermute ich, dass Sie eine ältere Version von Mongo-Hacker haben (Ich habe eine Korrektur im August 2014 vorgenommen) – Stennie