¿Cómo me conecto a mongodb con node.js?

Tengo el nodo-mongodb-controlador nativo.

Hay aparentemente 0 documentación.

Es algo como esto?

var mongo = require('mongodb/lib/mongodb'); 
var Db= new mongo.Db( dbname, new mongo.Server( 'mongolab.com', 27017, {}), {}); 

Donde pongo el nombre de usuario y la contraseña?

También ¿cómo puedo insertar algo?

Gracias.

InformationsquelleAutor Mark | 2011-01-14

13 Comentarios

  1. 42

    Por la fuente:

    Después de la conexión:

    Db.authenticate(user, password, function(err, res) {
      //callback
    });
    • Puedo obtener un «auth falla de error».
    • Yo no puedo creer que esta respuesta obtuvo upvoted tanto con errores de sintaxis… la devolución de llamada no está bien definida. Ver mi solución y más fuente apropiada siguiente enlace: stackoverflow.com/a/15191273/1060487
    • probé por primera vez y no funcionó, pero eso es porque yo lo estaba usando mal. Yo estaba usando las credenciales de los usuarios en el administrador. He creado un usuario específicamente para la base de datos y utiliza las credenciales. Trabajó como un encanto. Gracias!
    • Db no tiene método de autenticación más como de la versión del controlador 3.1. mongodb.github.io/node-mongodb-native/3.1/api/Db.html
  2. 35

    Todo el mundo debería utilizar este enlace de la fuente:

    http://mongodb.github.com/node-mongodb-native/contents.html

    Respuesta a la pregunta:

    var Db = require('mongodb').Db,
        MongoClient = require('mongodb').MongoClient,
        Server = require('mongodb').Server,
        ReplSetServers = require('mongodb').ReplSetServers,
        ObjectID = require('mongodb').ObjectID,
        Binary = require('mongodb').Binary,
        GridStore = require('mongodb').GridStore,
        Code = require('mongodb').Code,
        BSON = require('mongodb').pure().BSON,
        assert = require('assert');
    
    var db = new Db('integration_tests', new Server("127.0.0.1", 27017,
     {auto_reconnect: false, poolSize: 4}), {w:0, native_parser: false});
    
    //Establish connection to db
    db.open(function(err, db) {
      assert.equal(null, err);
    
      //Add a user to the database
      db.addUser('user', 'name', function(err, result) {
        assert.equal(null, err);
    
        //Authenticate
        db.authenticate('user', 'name', function(err, result) {
          assert.equal(true, result);
    
          db.close();
        });
      });
    });
    • ¿Por qué siempre agregar el usuario a la base de datos?
    • Este es un ejemplo, copiado del manual del conductor de enlace que he publicado… el método de conexión es la parte útil.
    • Sólo para información, con la esperanza de que pueda ayudar a alguien.. Esto no funciona, porque de null != {} y esto produce un error de comprobación: assert.equal(null, err);
    • Tal vez el ejemplo manual es obsoleta ahora y hay una versión más reciente de Mongo, gracias por la info!
    • No funciona, db.open es undefined.
  3. 15
    var mongo = require('mongodb');
    var MongoClient = mongo.MongoClient;    
    MongoClient.connect('mongodb://'+DATABASEUSERNAME+':'+DATABASEPASSWORD+'@'+DATABASEHOST+':'DATABASEPORT+'/'+DATABASENAME,function(err, db){  
          if(err) 
            console.log(err);
          else
          {
            console.log('Mongo Conn....');
    
          }
        });
    //for local server 
    //in local server DBPASSWOAD and DBusername not required
    MongoClient.connect('mongodb://'+DATABASEHOST+':'+DATABASEPORT+'/'+DATABASENAME,function(err, db){  
          if(err) 
            console.log(err);
          else
          {
            console.log('Mongo Conn....');
    
          }
        });
    • perfecto… gracias … u acaba de dejar el operador de concatenación ‘@’+DATABASEHOST+’:’ + DATABASEPORT @Viral Patel
  4. 7

    Creo que utilizando un Mongo url a mano. Yo almacenar la URL en una variable de entorno y el uso que para configurar los servidores, mientras que la versión de desarrollo utiliza una dirección url predeterminada sin contraseña.

    La URL tiene la forma:

    export MONGODB_DATABASE_URL=mongodb://USERNAME:[email protected]:DBPORT/DBNAME

    Código para conectarse de esta manera:

    var DATABASE_URL = process.env.MONGODB_DATABASE_URL || mongodb.DEFAULT_URL;
    
    mongo_connect(DATABASE_URL, mongodb_server_options, 
          function(err, db) { 
    
              if(db && !err) {
              console.log("connected to mongodb" + " " + lobby_db);
              }
              else if(err) {
              console.log("NOT connected to mongodb " + err + " " + lobby_db);
              }
          });    
    • Si el usuario está en otra db de DBNAME (como admin), debe agregar las opciones ?authSource=admin a la dirección URL.
  5. 5

    Mi versión:

    var MongoClient = require('mongodb').MongoClient;
    MongoClient.connect('mongodb://user:[email protected]:port/baseName', function(err, db) {
        if (err) {
            console.error(err);
        }
        var collection = db.collection('collectionName');
        collection.find().toArray(function(err, docs) {
            console.log(docs);
        });
    });
  6. 3

    Recomiendo mongoskin acabo de crear.

    var mongo = require('mongoskin');
    var db = mongo.db('admin:[email protected]/mydb?auto_reconnnect');
    db.collection('mycollection').find().toArray(function(err, items){
       //do something with items
    });

    Es mongoskin de sincronización? Nop, es asíncrona.

  7. 1

    Con el enlace proporcionado por @mattdlockyer como referencia, esto funcionó para mí:

    var mongo = require('mongodb');
    var server = new mongo.Server(host, port, options);
    db = new mongo.Db(mydb, server, {fsync:true});
    db.open(function(err, db) {
        if(!err) {
            console.log("Connected to database");
            db.authenticate(user, password, function(err, res) {
                if(!err) {
                    console.log("Authenticated");
                } else {
                    console.log("Error in authentication.");
                    console.log(err);
                }
            });
        } else {
            console.log("Error in open().");
            console.log(err);
        };
    });
    
    exports.testMongo = function(req, res){
        db.collection( mycollection, function(err, collection) {
            collection.find().toArray(function(err, items) {
                res.send(items);
            });
        });
    };
  8. 1

    Aquí es nuevo puede autenticar de «admin» y luego cambiar a la deseada DB para otras operaciones:

       var MongoClient = require('mongodb').MongoClient;
    var Db = require('mongodb').Db, Server = require('mongodb').Server ,
        assert = require('assert');
    
    var user = 'user';
    var password = 'password';
    
    MongoClient.connect('mongodb://'+user+':'+password+'@localhost:27017/opsdb',{native_parser:true, authSource:'admin'}, function(err,db){
        if(err){
            console.log("Auth Failed");
            return;
        }
        console.log("Connected");
        db.collection("cols").find({loc:{ $eq: null } }, function(err, docs) {
            docs.each(function(err, doc) {
              if(doc) {
                console.log(doc['_id']);
              }
            });
        });
    
        db.close();
    
    }); 
  9. 0

    Leve error tipográfico con Chris respuesta.

    Db.authenticate(user, password, function({ //callback }));

    debe ser

    Db.authenticate(user, password, function(){ //callback } );

    También dependiendo de su mongodb configuración, es posible que necesite conectar a la administración y autenticación de allí antes de ir a una base de datos diferente. Este será el caso si usted no agregar un usuario a la base de datos que está tratando de acceder. A continuación, puede auth a través del administrador y, a continuación, el interruptor de db y, a continuación, leer o escribir a voluntad.

  10. -2

    Estoy usando la Mangosta para conectarse a mongodb.
    Instalar mangosta mecanismo nacional de prevención mediante el comando siguiente:

    npm install mangosta

    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost:27017/database_name', function(err){
        if(err){
            console.log('database not connected');
        }
    });
    var Schema = mongoose.Schema;
    var userschema = new Schema ({});
    var user = mongoose.model('collection_name', userschema);

    podemos utilizar las consultas como esta

    user.find({},function(err,data){
             if(err){
             console.log(err);
             }
            console.log(data);
        });

Dejar respuesta

Please enter your comment!
Please enter your name here