Wie verbinde ich mich mit node.js mit mongodb?
Ich habe den Node-Mongodb-Native-Treiber.
Es gibt anscheinend 0 Dokumentation.
Ist es so etwas?
var mongo = require('mongodb/lib/mongodb');
var Db= new mongo.Db( dbname, new mongo.Server( 'mongolab.com', 27017, {}), {});
Wo lege ich den Benutzernamen und das Passwort ab?
Wie füge ich auch etwas ein?
Vielen Dank.
javascript
node.js
mongodb
authentication
connection
Kennzeichen
quelle
quelle
Antworten:
Laut Quelle :
Nach dem Anschließen:
Db.authenticate(user, password, function(err, res) { // callback });
quelle
Jeder sollte diesen Quelllink verwenden:
http://mongodb.github.com/node-mongodb-native/contents.html
Antwort auf die Frage:
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(); }); }); });
quelle
null != {}
und diese Überprüfung fehlschlägt:assert.equal(null, err);
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....'); } });
quelle
Ich finde es praktisch, eine Mongo-URL zu verwenden. Ich speichere die URL in einer Umgebungsvariablen und konfiguriere damit Server, während die Entwicklungsversion eine Standard-URL ohne Kennwort verwendet.
Die URL hat die Form:
export MONGODB_DATABASE_URL=mongodb://USERNAME:PASSWORD@DBHOST:DBPORT/DBNAME
Code zum Verbinden auf diese Weise:
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); } });
quelle
?authSource=admin
zur URL hinzufügen .Meine Version:
var MongoClient = require('mongodb').MongoClient; MongoClient.connect('mongodb://user:pass@dhost:port/baseName', function(err, db) { if (err) { console.error(err); } var collection = db.collection('collectionName'); collection.find().toArray(function(err, docs) { console.log(docs); }); });
quelle
Ich empfehle Mongoskin, das ich gerade erstellt habe.
var mongo = require('mongoskin'); var db = mongo.db('admin:pass@localhost/mydb?auto_reconnnect'); db.collection('mycollection').find().toArray(function(err, items){ // do something with items });
Ist Mongoskin synchron? Nein, es ist asynchron.
quelle
Das hat bei mir funktioniert:
Db.admin().authenticate(user, password, function() {} );
quelle
Hier ist eine neue Möglichkeit, sich von "admin" zu authentifizieren und dann für weitere Vorgänge zu Ihrer gewünschten Datenbank zu wechseln:
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(); });
quelle
Sie können es so machen
var db = require('mongo-lite').connect('mongodb://localhost/test')
mehr Details ...
quelle
Wenn Sie weiterhin Probleme mit dem nativen Treiber haben, können Sie auch den schläfrigen Mungo überprüfen. Es ist ein Python-REST-Server, auf den Sie einfach mit einer Knotenanforderung zugreifen können, um zu Ihrer Mongo-Instanz zu gelangen. http://www.snailinaturtleneck.com/blog/2010/02/22/sleepy-mongoose-a-mongodb-rest-interface/
quelle
Mit dem von @mattdlockyer als Referenz bereitgestellten Link funktionierte dies für mich:
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); }); }); };
quelle
Leichter Tippfehler mit Chris 'Antwort.
Db.authenticate(user, password, function({ // callback }));
sollte sein
Db.authenticate(user, password, function(){ // callback } );
Abhängig von Ihrer Mongodb-Konfiguration müssen Sie möglicherweise zuerst eine Verbindung zum Administrator herstellen und dort authentifizieren, bevor Sie zu einer anderen Datenbank wechseln können. Dies ist der Fall, wenn Sie der Datenbank, auf die Sie zugreifen möchten, keinen Benutzer hinzufügen. Dann können Sie über admin authentifizieren und dann die Datenbank wechseln und dann nach Belieben lesen oder schreiben.
quelle
Ich benutze Mongoose, um mich mit Mongodb zu verbinden. Installieren Sie mongoose npm mit dem folgenden Befehl
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);
Wir können die Abfragen so verwenden
user.find({},function(err,data){ if(err){ console.log(err); } console.log(data); });
quelle