摘要:前言上一篇中初階系列一用戶和權限介紹了用戶和權限,這一篇將介紹如何在中進行增刪改查。這是初階系列的第二篇,接下來還有第三篇,借助,更優雅地操作數據。
前言
上一篇中(mongoDB初階系列一:用戶和權限)介紹了用戶和權限,這一篇將介紹如何在node中進行增刪改查。
準備首先,要在node中使用mongoDB,需要安裝MongoDB Driver,命令如下:npm install mongodb --save
github地址:node-mongodb-native
同時,記得開啟mongoDB服務。
增下面代碼將在數據庫demodb中tasks集合里面插入了一條文檔,并且在控制臺打印出了該文檔的id。
const MongoClient = require("mongodb").MongoClient const assert = require("assert") const url = "mongodb://localhost:27017" const dbName = "demodb" // 增 MongoClient.connect(url, function(err, client) { assert.equal(null, err) console.log("Connected successfully to server") const db = client.db(dbName) var tasks = db.collection("tasks") // 沒有則創建 tasks.insertOne( { "project": "task1", "description": "task1 description." }, {safe: true}, function(err, documents) { if (err) throw err; console.log(documents.insertedId); } ); client.close() })
運行程序,發現在控制臺打印出了如下結果
Connected successfully to server 5b59d53ae3d895184824586b
這個返回的5b59d53ae3d895184824586b是MongoDB的文檔標識符,它是唯一的,它的本質是二進制JSON(即BSON),BSON是MongoDB用來交換數據的主要數據格式,MongoDB服務器用它代替JSON交換數據。大多數情況下,它更節省空間,解析起來也更快。
聲明的{safe: true}表明,等數據庫操作完成之后,才執行回調回調函數。
注意:這里為了方便,沒有開啟授權模式,所以,在登錄url中不需要用戶名和密碼也可以在登錄隨便進行增刪改查。但在產品環境請記得務必開啟授權模式。
刪下面代碼將在數據庫demodb中tasks集合找到project為task1的這條文檔,并刪除它。
// 刪 MongoClient.connect(url, function(err, client) { assert.equal(null, err) console.log("Connected successfully to server") const db = client.db(dbName) var tasks = db.collection("tasks") tasks.deleteOne( { "project": "task1" }, function(err, result) { assert.equal(err, null); assert.equal(1, result.result.n); console.log("Removed the document"); } ); client.close() })
注意:如果tasks集合中有多條project為task1的文檔,那么,也只會刪除找到的第一天文檔。
改下面代碼將在數據庫demodb中tasks集合找到project為task1的這條文檔,并更新它。
// 改 MongoClient.connect(url, function(err, client) { assert.equal(null, err) console.log("Connected successfully to server") const db = client.db(dbName) var tasks = db.collection("tasks") tasks.updateOne( { "project": "task1" }, { $set: { "project" : "task999" } }, {safe: true}, function(err, result) { assert.equal(err, null); assert.equal(1, result.result.n); console.log("Updated the document"); } ); client.close() })
注意:如果在tasks集合沒有找到project為task1的文檔,程序將會拋出斷言錯誤,如下:
下面代碼將在數據庫demodb中tasks集合找到所有文檔,并打印到控制臺。
// 查 MongoClient.connect(url, function(err, client) { assert.equal(null, err) console.log("Connected successfully to server") const db = client.db(dbName) var tasks = db.collection("tasks") tasks.find().toArray((err, docs) => { console.log(docs) assert.equal(null, err) // err 不等于null, 則在控制臺打印err // assert.equal(3, docs.length) // 記錄不等于3條, 則在控制臺打印記錄條數 }) client.close() })
find()方法找到所有文檔,toArray()將結果轉換成數組形式,運行程序,結果如下:
雖然上面四個小程序略顯簡單,但是不積跬步,無以至千里,如果你真的掌握了基本的增刪改查,那么,掌握復雜的應用也只是時間問題了。
這是mongo初階系列的第二篇,接下來還有第三篇,借助mongoose,更優雅地操作數據。敬請期待!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19331.html
摘要:前言上一篇中初階系列一用戶和權限介紹了用戶和權限,這一篇將介紹如何在中進行增刪改查。這是初階系列的第二篇,接下來還有第三篇,借助,更優雅地操作數據。 前言 上一篇中(mongoDB初階系列一:用戶和權限)介紹了用戶和權限,這一篇將介紹如何在node中進行增刪改查。 準備 首先,要在node中使用mongoDB,需要安裝MongoDB Driver,命令如下:npm install mo...
摘要:前言上篇初階系列二中的增刪改查中講解了用驅動來對數據進行增刪改查,本篇將繼續前進,依舊通過增刪改查來講解如何用更順暢的操控。查下面這段代碼對集合進行搜索,并輸出每項任務的唯一和描述,等打印完成后,關閉數據庫連接。 前言 上篇 mongoDB初階系列二:node中的增刪改查 中講解了用node驅動來對數據進行增刪改查,本篇將繼續前進,依舊通過增刪改查來講解如何用mongoose更順暢的操...
摘要:前言上篇初階系列二中的增刪改查中講解了用驅動來對數據進行增刪改查,本篇將繼續前進,依舊通過增刪改查來講解如何用更順暢的操控。查下面這段代碼對集合進行搜索,并輸出每項任務的唯一和描述,等打印完成后,關閉數據庫連接。 前言 上篇 mongoDB初階系列二:node中的增刪改查 中講解了用node驅動來對數據進行增刪改查,本篇將繼續前進,依舊通過增刪改查來講解如何用mongoose更順暢的操...
摘要:類比一下你有一個巨型停車場,里邊分了不同的停車區集合,這里的,每個停車區可以停很多車下文提到的,相當于每個數據集合里邊可以有很多張數據表。 Node.js利用mongoose連接mongodb數據庫 Node.js連接mongodb數據庫有很多種方法,通過mongoose模塊引入是其中的一個方法 代碼組織結構 |---|根目錄 |---|---|connect.js(mongoose測...
摘要:類比一下你有一個巨型停車場,里邊分了不同的停車區集合,這里的,每個停車區可以停很多車下文提到的,相當于每個數據集合里邊可以有很多張數據表。 Node.js利用mongoose連接mongodb數據庫 Node.js連接mongodb數據庫有很多種方法,通過mongoose模塊引入是其中的一個方法 代碼組織結構 |---|根目錄 |---|---|connect.js(mongoose測...
閱讀 3245·2021-09-22 16:06
閱讀 3236·2021-09-02 15:40
閱讀 632·2019-08-30 15:54
閱讀 1035·2019-08-26 12:22
閱讀 1375·2019-08-26 12:17
閱讀 2742·2019-08-26 12:09
閱讀 502·2019-08-26 10:20
閱讀 783·2019-08-23 16:28