Einige Benutzer öffnen Cursor zu Mongo mit noTimeout-Set. Ich möchte alle offenen Cursor auflisten, ihre IDs, ihre Optionen, die Abfrage, unter der sie ausgeführt werden, die Startzeit für diesen Cursor, die letzte Zeit, zu der er verwendet wurde (getmore). Gibt es einen Befehl, das zu tun? Kann mir jemand Hinweise geben, damit ich bei Bedarf eine kleine App schreiben kann.MongoDB Wie erhalten wir alle aktuellen Cursor und die Abfragen, die sie ausführen?
Antwort
MongoDB hat einen Befehl 'currentOp', der aktuelle Operationen enthält (im Allgemeinen nicht nur offene Cursor). Das Ergebnis ist ein Array von "inprog" -Werten. Sie haben die Thread-ID der Operation, keine Cursor-ID, aber sie ist sehr nützlich, um schwere Operationen oder solche, die schon lange laufen, zu untersuchen. Es ist nicht perfekt, was Sie wollen, aber ich denke, Sie könnten ein kleines Programm schreiben, das die Laufzeit von Operationen analysiert, um festzustellen, welche eine bestimmte Zeit lang ausgeführt wurde.
Blick auf ein Beispiel für meine Datenbank einer Aggregation ich nur zu Testzwecken laufen, werde ich einige Daten verstecken, weil es in unserem Fall sehr sinnvoll ist :)
"inprog" : [
{
"opid" : 74074645,
"active" : true,
"secs_running" : 2,
"op" : "query",
"ns" : "mydb.Terms.ByHour",
"query" : {
"aggregate" : "Terms.ByHour",
"pipeline" : [
{
"$match" : {
"cluster" : "my_key",
"start" : {
"$gte" : ISODate("2013-11-10T00:00:00Z"),
"$lte" : ISODate("2013-11-11T00:00:00Z")
}
}
},
{
"$group" : {
"_id" : "$start",
"count" : {
"$sum" : "$count"
}
}
},
{
"$sort" : {
"_id" : 1
}
}
]
einfach das Ergebnis legte in einer Variablen:
currentOps = db.currentOp()
und es als reguläres json verwenden, oder ein kleines Programm schreiben, das currentOps.inprog Array und prüfen secs_running> etwas
I iterieren hop e es hilft.
Es lohnt sich, die Dokumente auf db.currentOp() zu lesen. Sie können auch mit "true" als Argument arbeiten, das eine ausführlichere Ausgabe und Leerlaufoperationen bietet: http://docs.mongodb.org/manual/reference/method/db.currentOp/ –
Einverstanden. Im Allgemeinen funktioniert das Laufen ohne Argumente für mich in Bezug auf die Analyse, aber es liefert mehr Informationen für den Fall, dass eine tiefere Analyse erforderlich ist. –
Nach Kommentaren zu ihrem JIRA Januar 2017, ist ein Feature geplant, dies zu tun, ist aber derzeit nicht auf jedem Fahrplan: https://jira.mongodb.org/browse/SERVER-3090
- 1. Erhalten Sie alle Ergebnisse, die mit aktuellen Benutzer in Parse
- 2. Erhalten Sie alle 'Dokumente' aus MongoDB 'Sammlung'
- 3. MongoDB 2.4.8 capped collection und tailable cursor, die alle Speicher verbrauchen
- 4. mongodb: Einfügen und Abfragen Geometrien und WMS
- 5. Abfragen in MongoDB
- 6. Wie erhalten Sie die Anzahl der Cursor ohne LIMIT?
- 7. 1.3M Abfragen/Stunde. Wie würden Sie die Abfragen erstellen?
- 8. Wie können wir Kibana abfragen?
- 9. SQLite: Wie erhalten Sie Tabellenwerte, die dem aktuellen Monat entsprechen?
- 10. Wie erhalten Sie die aktuellen DNS-Server für Android?
- 11. Mix rekursive Abfragen und Cursor-Ausdrücke
- 12. Erhalten Sie die Farbe des Wortes unter dem Cursor
- 13. Wie man tote Cursor in MongoDB
- 14. Erhalten Sie die tatsächliche Schreibweise von lib clang cursor/type
- 15. So erhalten Sie die Standardshell
- 16. Was ist ein Cursor in MongoDB?
- 17. Erhalten Sie alle Daten, die von XPath
- 18. wie die Genehmigung erhalten mongodb Datenbank auf dem Server
- 19. Wie können wir die Testmethoden automatisch in .net ausführen?
- 20. Dynamische Abfragen in MongoDB und Node.js
- 21. Kombinieren MongoDB Abfragen
- 22. Wie geschachtelte Abfragen in MongoDb zu machen, die funktioniert wie geschachtelte Sql Select-Abfragen
- 23. Wie eine Liste von Java-Klassen erhalten, die aufgerufen werden, wenn wir Befehl ausführen
- 24. Wie die Cursor-Position bekommen
- 25. Erhalten Sie die aktuellen Admin-Login-Details in Magento
- 26. Wie sichern Sie die clientseitige MongoDB API?
- 27. Erhalten Sie die Gruppen eines Kontakts?
- 28. Können wir alle Anmerkungsansichten von MKMapView erhalten
- 29. MongoDB: wie Ergebnis zu kombinieren, von sagen wir 5 Match-Abfragen auf einer Sammlung und auch sortieren nach Abfragen führen
- 30. MongoDB - Wie man Abfragen an mehreren Attributen innerhalb eines Objekts durchführt und die Ergebnisse gruppiert
Können Sie meine Antwort markieren als angenommen? Ich denke, es löst das, wonach Sie gesucht haben. Danke im Voraus! –