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.

  1. mongodump --host some-mongo-host.com:1234 -d DATABASE_NAME -u DATABASE_USER -p DATABASE_PASSWORD Dies wird eine lokale erstellen dump - Verzeichnis; In diesem Verzeichnis sehen Sie ein Verzeichnis mit Ihrem DATABASE_NAME .
  2. Führen Sie, mongorestore --db meteor --drop -h localhost --port 3001 DATABASE_NAME Ihre lokale Meteor-App im dump 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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow