Recherche…
Introduction
MongoDB est un programme gratuit et open-source de base de données multi-plates-formes. Contrairement aux bases de données SQL classiques, MongoDB utilise BSON (comme JSON) pour stocker des données. Meteor a été conçu pour utiliser MongoDB pour le stockage de base de données et cette rubrique explique comment implémenter le stockage MongoDB dans les applications Meteor.
Exportation d'une base de données Mongo distante, importation dans une base de données Meteor Mongo locale
Utile lorsque vous souhaitez récupérer une copie d'une base de données de production pour jouer avec localement.
-
mongodump --host some-mongo-host.com:1234 -d DATABASE_NAME -u DATABASE_USER -p DATABASE_PASSWORD
Ceci créera un répertoire dedump
local; Dans ce répertoire, vous verrez un répertoire avec votreDATABASE_NAME
. - Avec votre application de météorologie locale en cours d'exécution, à partir du répertoire
dump
, exécutez:mongorestore --db meteor --drop -h localhost --port 3001 DATABASE_NAME
Obtenez l'URL Mongo de votre base de données locale Meteor Mongo
Pendant que votre application Meteor s'exécute localement:
meteor mongo --url
Connectez votre application Meteor locale à une autre base de données Mongo
Définissez la variable d'environnement MONGO_URL
avant de démarrer votre application Meteor locale.
Exemple Linux / MacOS:
MONGO_URL="mongodb://some-mongo-host.com:1234/mydatabase" meteor
ou
export MONGO_URL="mongodb://some-mongo-host.com:1234/mydatabase"
meteor
Exemple Windows
Note: ne pas utiliser "
set MONGO_URL=mongodb://some-mongo-host.com:1234/mydatabase
meteor
MNP
//package.json
"scripts": {
"start": "MONGO_URL=mongodb://some-mongo-host.com:1234/mydatabase meteor"
}
$ npm start
Running Meteor sans MongoDB
Définissez MONGO_URL
sur toute valeur arbitraire, à l'exception d'une URL de base de données, et assurez-vous qu'aucune collection n'est définie dans votre projet Meteor (y compris les collections définies par les packages Meteor) pour exécuter Meteor sans MongoDB.
Notez que sans MongoDB, les méthodes serveur / client associées aux paquets liés au système de compte utilisateur de Meteor ne seront pas définies. Ex: Meteor.userId()
Linux / Mac:
MONGO_URL="none" meteor
ou
export MONGO_URL="none"
meteor
Les fenêtres:
set MONGO_URL=none
meteor
Commencer
Vous pouvez démarrer le shell mongo
en exécutant la commande suivante dans votre projet Meteor:
meteor mongo
Remarque: le démarrage de la console de base de données côté serveur ne fonctionne que lorsque Meteor exécute l'application localement.
Après cela, vous pouvez lister toutes les collections en exécutant la commande suivante via le shell mongo
:
show collections
Vous pouvez également exécuter des opérations de base MongoDB, telles que l'interrogation, l'insertion, la mise à jour et la suppression de documents.
Documents de requête
Les documents peuvent être interrogés en utilisant la méthode find()
, par exemple:
db.collection.find({name: 'Matthias Eckhart'});
Cela listera tous les documents dont l'attribut name
défini sur Matthias Eckhart
.
Insérer des documents
Si vous souhaitez insérer des documents dans une collection, exécutez:
db.collection.insert({name: 'Matthias Eckhart'});
Mise à jour des documents
Si vous souhaitez mettre à jour des documents, utilisez la méthode update()
, par exemple:
db.collection.update({name: 'Matthias Eckhart'}, {$set: {name: 'John Doe'}});
L'exécution de cette commande mettra à jour un seul document en définissant la valeur John Doe
pour le name
du champ (initialement, la valeur était Matthias Eckhart
).
Si vous souhaitez mettre à jour tous les documents correspondant à un critère spécifique, définissez le paramètre multi
sur true
, par exemple:
db.collection.update({name: 'Matthias Eckhart'}, {$set: {name: 'John Doe'}}, {multi: true});
Désormais, tous les documents de la collection dont l'attribut name
était initialement défini sur Matthias Eckhart
ont été mis à jour avec John Doe
.
Suppression de documents
Les documents peuvent être facilement supprimés à l'aide de la méthode remove()
, par exemple:
db.collection.remove({name: 'Matthias Eckhart'});
Cela supprimera tous les documents qui correspondent à la valeur spécifiée dans le champ du name
.