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.

  1. mongodump --host some-mongo-host.com:1234 -d DATABASE_NAME -u DATABASE_USER -p DATABASE_PASSWORD Ceci créera un répertoire de dump local; Dans ce répertoire, vous verrez un répertoire avec votre DATABASE_NAME .
  2. 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 .



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow