Suche…
Einführung
MongoDB ist ein kostenloses und quelloffenes, Open-Source-Dokumentenorientiertes Datenbankprogramm. Im Gegensatz zu klassischen SQL-Datenbanken verwendet MongoDB BSON (wie JSON) zum Speichern von Daten. Meteor wurde für die Verwendung von MongoDB zum Speichern von Datenbanken entwickelt. In diesem Thema wird beschrieben, wie der MongoDB-Speicher in Meteor-Anwendungen implementiert wird.
Exportieren Sie eine entfernte Mongo-Datenbank und importieren Sie sie in eine lokale Meteor-Mongo-Datenbank
Hilfreich, wenn Sie sich eine Kopie einer Produktionsdatenbank zum lokalen Wiedergeben holen möchten.
-
mongodump --host some-mongo-host.com:1234 -d DATABASE_NAME -u DATABASE_USER -p DATABASE_PASSWORD
Dies wird eine lokale erstellendump
- Verzeichnis; In diesem Verzeichnis sehen Sie ein Verzeichnis mit IhremDATABASE_NAME
. - Führen Sie,
mongorestore --db meteor --drop -h localhost --port 3001 DATABASE_NAME
Ihre lokale Meteor-App imdump
Verzeichnis ausgeführt wird,mongorestore --db meteor --drop -h localhost --port 3001 DATABASE_NAME
:mongorestore --db meteor --drop -h localhost --port 3001 DATABASE_NAME
Holen Sie sich die Mongo-URL Ihrer lokalen Meteor-Mongo-Datenbank
Während Ihre Meteor-App lokal ausgeführt wird:
meteor mongo --url
Verbinden Sie Ihre lokale Meteor-App mit einer alternativen Mongo-Datenbank
MONGO_URL
Umgebungsvariable MONGO_URL
, bevor Sie Ihre lokale Meteor-App starten.
Linux / MacOS-Beispiel:
MONGO_URL="mongodb://some-mongo-host.com:1234/mydatabase" meteor
oder
export MONGO_URL="mongodb://some-mongo-host.com:1234/mydatabase"
meteor
Windows-Beispiel
Hinweis: Verwenden Sie nicht "
set MONGO_URL=mongodb://some-mongo-host.com:1234/mydatabase
meteor
NPM
//package.json
"scripts": {
"start": "MONGO_URL=mongodb://some-mongo-host.com:1234/mydatabase meteor"
}
$ npm start
Meteor ohne MongoDB ausführen
Setzen Sie MONGO_URL
auf einen beliebigen Wert mit Ausnahme einer Datenbank-URL. MONGO_URL
Sie MONGO_URL
, dass in Ihrem Meteor-Projekt keine Sammlungen definiert sind (einschließlich von Meteor-Paketen definierte Sammlungen), um Meteor ohne MongoDB auszuführen.
Beachten Sie, dass ohne MongoDB Server- / Client-Methoden und alle Pakete, die sich auf das Benutzerkontosystem von Meteor beziehen, undefiniert sind. Ex: Meteor.userId()
Linux / Mac:
MONGO_URL="none" meteor
oder
export MONGO_URL="none"
meteor
Windows:
set MONGO_URL=none
meteor
Fertig machen
Sie können die mongo
Shell starten, indem Sie den folgenden Befehl in Ihrem Meteor-Projekt ausführen:
meteor mongo
Bitte beachten Sie: Das Starten der serverseitigen Datenbankkonsole funktioniert nur, wenn Meteor die Anwendung lokal ausführt.
Danach können Sie alle Sammlungen auflisten, indem Sie den folgenden Befehl über die mongo
Shell ausführen:
show collections
Sie können auch grundlegende MongoDB-Vorgänge ausführen, z. B. Abfragen, Einfügen, Aktualisieren und Löschen von Dokumenten.
Dokumente abfragen
Dokumente können mit der find()
-Methode abgefragt werden, zB:
db.collection.find({name: 'Matthias Eckhart'});
Dadurch werden alle Dokumente aufgeführt , die die haben name
Attribut auf Matthias Eckhart
.
Dokumente einfügen
Wenn Sie Dokumente in eine Sammlung einfügen möchten, führen Sie Folgendes aus:
db.collection.insert({name: 'Matthias Eckhart'});
Dokumente aktualisieren
Wenn Sie Dokumente aktualisieren möchten, verwenden Sie die update()
-Methode, zum Beispiel:
db.collection.update({name: 'Matthias Eckhart'}, {$set: {name: 'John Doe'}});
Die Ausführung dieses Befehls wird , indem der Wert eines einzelnen Dokuments aktualisieren John Doe
für den name
(zunächst der Wert war Matthias Eckhart
).
Wenn Sie alle Dokumente aktualisieren möchten, die bestimmten Kriterien entsprechen, setzen Sie den multi
Parameter auf true
. Beispiel:
db.collection.update({name: 'Matthias Eckhart'}, {$set: {name: 'John Doe'}}, {multi: true});
Nun werden alle Dokumente in der Sammlung , die zunächst den hatte name
Attribut auf Matthias Eckhart
wurden aktualisiert John Doe
.
Dokumente löschen
Dokumente können einfach mit der remove()
-Methode entfernt werden. Beispiel:
db.collection.remove({name: 'Matthias Eckhart'});
Dadurch werden alle Dokumente entfernen, die den Wert in dem angegebenen übereinstimmen name
Feld.