Buscar..
Introducción
MongoDB es un programa de base de datos orientado a documentos multiplataforma de código abierto y gratuito. A diferencia de las bases de datos SQL clásicas, MongoDB usa BSON (como JSON) para almacenar datos. Meteor fue diseñado para usar MongoDB para el almacenamiento de la base de datos y este tema explica cómo implementar el almacenamiento de MongoDB en las aplicaciones Meteor.
Exportar una base de datos remota de Mongo, importar a una base de datos local de Meteor Mongo
Útil cuando desea obtener una copia de una base de datos de producción para jugar localmente.
-
mongodump --host some-mongo-host.com:1234 -d DATABASE_NAME -u DATABASE_USER -p DATABASE_PASSWORD
Esto creará un directorio dedump
local; dentro de ese directorio verá un directorio con suDATABASE_NAME
. - Con su aplicación meteorológica local ejecutándose, desde dentro del directorio de
dump
, ejecute:mongorestore --db meteor --drop -h localhost --port 3001 DATABASE_NAME
Obtenga la URL de Mongo de su local Meteor Mongo DB
Mientras tu aplicación Meteor se ejecuta localmente:
meteor mongo --url
Conecte su aplicación local de meteoros a una base de datos de Mongo alternativa
Establezca la variable de entorno MONGO_URL
antes de iniciar su aplicación Meteor local.
Ejemplo de Linux / MacOS:
MONGO_URL="mongodb://some-mongo-host.com:1234/mydatabase" meteor
o
export MONGO_URL="mongodb://some-mongo-host.com:1234/mydatabase"
meteor
Ejemplo de Windows
Nota: no usar "
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
Ejecutando Meteor sin MongoDB
Establezca MONGO_URL
en cualquier valor arbitrario a excepción de una URL de base de datos y asegúrese de que no haya colecciones definidas en su proyecto Meteor (incluidas las colecciones definidas por los paquetes Meteor) para ejecutar Meteor sin MongoDB.
Tenga en cuenta que sin MongoDB, los métodos de servidor / cliente junto con cualquier paquete relacionado con el sistema de cuentas de usuario de Meteor no estarán definidos. Ej: Meteor.userId()
Linux / Mac:
MONGO_URL="none" meteor
o
export MONGO_URL="none"
meteor
Windows:
set MONGO_URL=none
meteor
Empezando
Puede iniciar el shell mongo
ejecutando el siguiente comando dentro de su proyecto Meteor:
meteor mongo
Tenga en cuenta que: el inicio de la consola de la base de datos del lado del servidor solo funciona mientras Meteor ejecuta la aplicación localmente.
Después de eso, puede enumerar todas las colecciones ejecutando el siguiente comando a través del shell mongo
:
show collections
También puede ejecutar operaciones básicas de MongoDB, como consultar, insertar, actualizar y eliminar documentos.
Documentos de consulta
Los documentos se pueden consultar mediante el método find()
, por ejemplo:
db.collection.find({name: 'Matthias Eckhart'});
Esto mostrará una lista de todos los documentos que tienen el atributo de name
establecido en Matthias Eckhart
.
Insertando Documentos
Si desea insertar documentos en una colección, ejecute:
db.collection.insert({name: 'Matthias Eckhart'});
Actualizando Documentos
En caso de que desee actualizar documentos, use el método update()
, por ejemplo:
db.collection.update({name: 'Matthias Eckhart'}, {$set: {name: 'John Doe'}});
La ejecución de este comando actualizará un solo documento estableciendo el valor John Doe
para el name
del campo (inicialmente el valor era Matthias Eckhart
).
Si desea actualizar todos los documentos que coinciden con un criterio específico, establezca el parámetro multi
en true
, por ejemplo:
db.collection.update({name: 'Matthias Eckhart'}, {$set: {name: 'John Doe'}}, {multi: true});
Ahora, todos los documentos de la colección que tenían inicialmente el atributo de name
establecido en Matthias Eckhart
se han actualizado a John Doe
.
Borrando documentos
Los documentos se pueden eliminar fácilmente mediante el método remove()
, por ejemplo:
db.collection.remove({name: 'Matthias Eckhart'});
Esto eliminará todos los documentos que coincidan con el valor especificado en el campo de name
.