2017-09-26 2 views
0

Ich habe gerade Robo3T (zuvor genannt robomongo) installiert, die eine GUI für Mongo db hat. Ich möchte eine benutzerdefinierte Funktion hinzufügen, um mir die letzten N Dokumente in normaler Reihenfolge erhalten zu helfen, die Abfrage-Anweisung ist wie folgt:in Robo3T, wie man eine benutzerdefinierte Funktion

db.getCollection('i1801').find().skip(db.getCollection('i1801').count() - 1200) 

Und ich von Stackoverflow gefunden (mongodb: how to get the last N records?) kann dies als eine Funktion geschrieben werden dies wie:

function last(N) { 
    return db.collection.find().skip(db.collection.count() - N); 
} 

Und ich gehe zurück zu meinem Robo3T und versuchte, eine benutzerdefinierte Funktion last(), hinzufügen, aber nicht funktionierte, zeigte nichts unter Funktion Lasche nach oben.

Ich habe einige Screenshots illustriert dieses Problem angehängt:

Trying to add a custom function

Created a custom function and saved

After save, nothing happened

Nachdem ich Speichern-Button geklickt haben, ist nichts passiert, noch keine Funktionen unter Funktion Tab. Und das Protokoll zeigt die Funktion last erstellt, und Funktion Registerkarte wird aktualisiert. Here is the logs

Also, wie kann ich hier eine last Funktion hinzufügen?

Antwort

1

Sie haben die Schritte, die Sie aufgelistet haben, versucht. Es hat für einfache Suchanweisungen funktioniert. Als ich das "Überspringen" hinzugefügt habe, ist das Speichern fehlgeschlagen. Selbst das Aktualisieren einer vorhandenen Funktion funktionierte nicht. Vielleicht ein Problem mit Robo? Ich weiß es nicht.

Wie dem auch sei, die Funktion in Robo3t

  1. Rechts klicken Sammlung
  2. Wählen Sie Öffnen Shell
  3. Auf der Schale geben Sie den folgenden

db.system.js.save(
 
    { 
 
    _id: "last", 
 
    value : function last(x) { return db.test.find().skip(db.test.count() - x); } 
 
    } 
 
)

hinzufügen

Zuletzt führen Sie das Skript aus und aktualisieren Sie den Funktionsordner.

+0

Danke, jetzt wurde die Funktion erstellt, aber ich muss vielleicht einige dumme Fragen stellen, da ich js nicht kenne oder mit Robo3T vertraut bin. Nachdem ich die Funktion 'last' erstellt habe, wie kann ich sie benutzen? Ich habe versucht, 'last (5)', 'db.getCollection ('rb1801'). Last (5)', oder 'db.last (5)' alle funktionieren nicht. Irgendein Rat? – StayFoolish

+0

Für den Anfang können Sie in diesem Post schauen: https://stackoverflow.com/questions/18185192/call-stored-function-in-mongodb – trashvin

Verwandte Themen