Mongodb
無法連接到mongodb
我正在嘗試連接到 mongodb 並從中查詢數據。這是我正在做的事情:
在節點 js 中,我的 db 連接文件如下所示:
//Using mongodb drivers has to be installed using npm var MongoClient = require('mongodb').MongoClient; var dburl = 'mongodb://localhost:27017/meanhotel'; var _connection = null; var open = function() { MongoClient.connect(dburl, function(err, db) { if (err) { console.log("DB connection failed",err); return; }else{ _connection = db; console.log("DB connection open"); } }); }; var get = function() { return _connection; }; module.exports = { open : open, get : get };
我用來從數據庫中查詢數據的節點js程式碼是這樣的:
var dbconn = require('../data/dbconnection.js'); var hotelData = require('../data/hotel-data.json'); module.exports.hotelsGetAll = function(req, res) { // var db = dbconn.get(); var collection = db.collection('hotels'); var docs=collection.find(); collection .find() .toArray(function(err,docs){ console.log("Found hotels",err); res .status(200) .json(docs); });
如果我訪問 URL
什麼都沒有出來。
同樣在終端我得到這個輸出。
Found hotels { [MongoError: not authorized on meanhotel to execute command { find: "hotels", filter: {} }] name: 'MongoError', message: 'not authorized on meanhotel to execute command { find: "hotels", filter: {} }', ok: 0, errmsg: 'not authorized on meanhotel to execute command { find: "hotels", filter: {} }', code: 13, codeName: 'Unauthorized' }
我正在使用它來啟動 mongo shell:
mongo localhost:27017/admin -u user -p pass
另外,如果我想將數據轉儲到我正在使用的數據庫中。
sudo mongodump --db meantest -u user -p pass --authenticationDatabase admin --gzip
可能出了什麼問題?
啟用 MongoDB 身份驗證時正確的 URL 格式是:
mongodb://
$$ username:password@ $$主機1$$ :port1 $$$$ ,host2[:port2 $$,…$$ ,hostN[:portN $$]]$$ /[database $$$$ ?options $$] 對於您的情況: mongodb://user:pass@localhost:27017/meanhotel?authSource=admin
這對我有用
var dburl = mongodb://user:pass@localhost:27017/meanhotel;