Ich bin neu bei node.js und mongodb und habe folgendes Problem: Ich muss alle Sammlungen aus meinem mongodb aus der Datei node.js löschen. Ich habe eine solche Funktion:
%Vor%Und ich verwende es in der folgenden Funktion:
%Vor%Als Ausgabe habe ich
! FEHLER! ns nicht gefunden
shiny_db.physicalinfos
Weiß nicht, was ich jetzt tun soll. Ich bin sehr dankbar für deine Hilfe.
Ich habe eine Antwort gefunden. Zuerst habe ich einen Fehler in meiner Verbindung gemacht, es sollte wie folgt aussehen: 'mongodb://127.0.0.1:27017/shiny_db'
. Der zweite Fehler war im Namen der Sammlung. Es war wie 'db_name.coll_name'
, deshalb konnte db.dropCollection(name, callback)
keine bestimmte Sammlung finden und deshalb hatte ich ns not found
. Also habe ich folgenden Mechanismus verwendet, um db_name von coll_name zu trennen:
var name = colls[i].name.substring('shiny_db.'.length);
und ich habe die Suche nach "system" collection hinzugefügt.
Der endgültige Code sieht folgendermaßen aus:
%Vor%Ich hoffe, es wird jemandem helfen!
Ist es nicht schneller, einfacher und weniger fehleranfällig, wenn Sie nur die gesamte Datenbank löschen?
%Vor%Immer wenn Sie von einer Mongo-CLI auf eine nicht existierende Datenbank zugreifen, wird diese beim Erstellen von Daten beibehalten. Das ist das Gleiche wie das Löschen aller Sammlungen.
Ich habe MongoDB noch nicht für irgendwas außer Studieren versucht, also weiß ich nicht viel über Berechtigungen. Also, wahrscheinlich das einzige Problem mit dem Löschen der gesamten DB wäre die Berechtigungen Ihrer Benutzer, die (glaube ich) verloren gehen würde.
Wenn dieses Skript, das Sie erstellen möchten, nicht für die Produktion gedacht ist, sollten Sie die DB löschen.
listCollections
gibt Ihnen ein Array Sammlungsnamen als Zeichenfolgen.
Es sieht so aus, als könnten Sie es mit etwas verwechseln, das ein Array von Sammlungsobjekten zurückgibt, wie zum Beispiel db.collections()