mongodb的學習-4-使用 MongoDB shell 來連接 Mongodb 服務


執行啟動操作后,mongodb 在輸出一些必要信息后不會輸出任何信息,之后就等待連接的建立,當連接被建立后,就會開始打印日志信息。

使用 MongoDB shell 來連接 Mongodb 服務

標准 URI 連接語法:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
  • mongodb:// 這是固定的格式,必須要指定。

  • username:password@ 可選項,如果設置,在連接數據庫服務器之后,驅動都會嘗試登陸這個數據庫

  • host1 必須的指定至少一個host, host1 是這個URI唯一要填寫的。它指定了要連接服務器的地址。如果要連接復制集,請指定多個主機地址。

  • portX 可選的指定端口,如果不填,默認為27017

  • /database 如果指定username:password@,連接並驗證登陸指定數據庫。若不指定,默認打開 test 數據庫。

  • ?options 是連接選項。如果不使用/database,則前面需要加上/。所有連接選項都是鍵值對name=value,鍵值對之間通過&或;(分號)隔開

標准的連接格式包含了多個選項(options),如下所示:

選項 描述
replicaSet=name 驗證replica set的名稱。 Impliesconnect=replicaSet.
slaveOk=true|false
  • true:在connect=direct模式下,驅動會連接第一台機器,即使這台服務器不是主。在connect=replicaSet模式下,驅動會發送所有的寫請求到主並且把讀取操作分布在其他從服務器。
  • false: 在 connect=direct模式下,驅動會自動找尋主服務器. 在connect=replicaSet 模式下,驅動僅僅連接主服務器,並且所有的讀寫命令都連接到主服務器。
safe=true|false
    • true: 在執行更新操作之后,驅動都會發送getLastError命令來確保更新成功。(還要參考 wtimeoutMS).
false: 在每次更新之后,驅動不會發送getLastError來確保更新成功。
w=n 驅動添加 { w : n } 到getLastError命令. 應用於safe=true。
wtimeoutMS=ms 驅動添加 { wtimeout : ms } 到 getlasterror 命令. 應用於 safe=true.
fsync=true|false
  • true: 驅動添加 { fsync : true } 到 getlasterror 命令.應用於 safe=true.
  • false: 驅動不會添加到getLastError命令中。
journal=true|false 如果設置為 true, 同步到 journal (在提交到數據庫前寫入到實體中). 應用於 safe=true
connectTimeoutMS=ms 可以打開連接的時間。
socketTimeoutMS=ms 發送和接受sockets的時間。

 

就比如,我們運行mongo時:

wanghuideMBP:~ wanghui$ mongo
MongoDB shell version v3.6.4
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.4

可見connecting to: mongodb://127.0.0.1:27017

mongodb://127.0.0.1:27017 就等價於 mongo

詳細的看http://www.runoob.com/mongodb/mongodb-connections.html

 

在本博客的Node.js 連接 MongoDB-7可見nodejs連接數據庫的url格式就是這個:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
    if (err) throw err;
    var dbo = db.db("mydatabase");
    dbo.collection("products").drop(function(err, delOK) { // 執行成功 delOK 返回 true,否則返回 false
        if (err) throw err;
        if (delOK) console.log("集合已刪除");
        db.close();
    });
});

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM