国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

mongoDB初階系列三:mongoose

Null / 846人閱讀

摘要:前言上篇初階系列二中的增刪改查中講解了用驅動來對數據進行增刪改查,本篇將繼續前進,依舊通過增刪改查來講解如何用更順暢的操控。查下面這段代碼對集合進行搜索,并輸出每項任務的唯一和描述,等打印完成后,關閉數據庫連接。

前言

上篇 mongoDB初階系列二:node中的增刪改查 中講解了用node驅動來對數據進行增刪改查,本篇將繼續前進,依舊通過增刪改查來講解如何用mongoose更順暢的操控MongoDB。

什么是Mongoose

Mongoose是一個Node模塊。提供了一種更高效的在node中操作mongoDB的方案。它提供了一個到MongoDB集合的接口,以及一些實用的功能,比如schema層次結構,中間件以及數據校驗。

schema定義

首先,需要安裝mongoose,安裝mongoose的命令如下:npm install mongoose,同時,記得開啟mongoDB服務。

在Mongoose中,一切都被Schema所驅動。在下面程序中,我們定義了一個Tasks,你可以理解為,這個Tasks對應在mongoDB中是一個tasks集合。該集合有兩個屬性,一個是project,類型為string,另一個是description,類型也是string。

var mongoose = require("mongoose")

mongoose.connect("mongodb://localhost:27017/demodb")
var db = mongoose.connection;
db.on("error", function(error) {
  console.log(error);
});

// schema定義
var Tasks = new mongoose.Schema({
  project: {type : String, default : "默認任務"},
  description: String
});
mongoose.model("Task", Tasks);
// add
var Task = mongoose.model("Task");
var task = new Task();
task.description = "task1 description.";
task.save(function(err) {
  if (err) throw err;
  console.log("Task saved.")
})

如果數據庫demodb中沒有tasks這個集合,當上面程序執行時,會自動創建tasks集合,當執行該程序后,我們發現數據庫中tasks集合多了一行數據:

如果我們不小心把task.description的值賦予了數字123,那么程序能正常執行嗎?
當然,mongoose會幫我們自動將數字123轉換成字符串123。最后結果會是這樣:

可以用文檔的內部ID獲取和刪除文檔,代碼如下:

// 刪除
var Task = mongoose.model("Task")
Task.findById("5b56ce3c2fa17f02e459fe54", function(err, task) {
  task.remove()
})

當然,你可以用其他條件來進行刪除,代碼如下:

var Task = mongoose.model("Task")
Task.findOne({ "description": "12" }, function(err, task) {
  task.remove()
})

下面的代碼用Mongoose更新了一個文檔id為5b5bebbfbf04e70bd432bde1的文檔

var Task = mongoose.model("Task");
Task.update(
  {_id: "5b5bebbfbf04e70bd432bde1"},
  {description: "update description."},
  {multi: false},
  function(err, rows_updated) {
    if (err) throw err;
    console.log("Updated.");
  }
)

當然你也可以用mongoose的find方法定位一個文檔,然后修改并保存它。

下面這段代碼對tasks集合進行搜索,并輸出每項任務的唯一ID和描述,等打印完成后,關閉數據庫連接。

var Task = mongoose.model("Task");
Task.find((err, tasks) => {
  console.log(tasks)
  if (tasks != null) {
    tasks.map(v => {
      console.log("ID:" + v._id);
      console.log(v.description);
    })
  }
  db.close()
});

當然,查詢方法有很多,這里只是列舉其一。

可視化工具推薦

順便提一下,可以使用mongoDB官方推出的compass工具來查看和操作數據(包括增刪改查),對于測試和調試數據來說,非常的方便。

小結

覺得自己是操控mongoDB的高手了嗎?也許還不是,但讀完本系列的初階三部曲,相信你應該已經掌握了很多基礎知識,如果你決定深入使用Mongoose,請參考它的在線文檔 http://mongoosejs.com/docs/in...

到這里為止,mongoDB初階系列將告一段落,同時,推薦如下書籍供需要深入理解mongoDB的朋友繼續參考:
MongoDB權威指南(第2版)
MongoDB實戰(第二版)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19328.html

相關文章

  • mongoDB初階系列mongoose

    摘要:前言上篇初階系列二中的增刪改查中講解了用驅動來對數據進行增刪改查,本篇將繼續前進,依舊通過增刪改查來講解如何用更順暢的操控。查下面這段代碼對集合進行搜索,并輸出每項任務的唯一和描述,等打印完成后,關閉數據庫連接。 前言 上篇 mongoDB初階系列二:node中的增刪改查 中講解了用node驅動來對數據進行增刪改查,本篇將繼續前進,依舊通過增刪改查來講解如何用mongoose更順暢的操...

    yzzz 評論0 收藏0
  • mongoDB初階系列二:node中的增刪改查

    摘要:前言上一篇中初階系列一用戶和權限介紹了用戶和權限,這一篇將介紹如何在中進行增刪改查。這是初階系列的第二篇,接下來還有第三篇,借助,更優雅地操作數據。 前言 上一篇中(mongoDB初階系列一:用戶和權限)介紹了用戶和權限,這一篇將介紹如何在node中進行增刪改查。 準備 首先,要在node中使用mongoDB,需要安裝MongoDB Driver,命令如下:npm install mo...

    Barrior 評論0 收藏0
  • mongoDB初階系列二:node中的增刪改查

    摘要:前言上一篇中初階系列一用戶和權限介紹了用戶和權限,這一篇將介紹如何在中進行增刪改查。這是初階系列的第二篇,接下來還有第三篇,借助,更優雅地操作數據。 前言 上一篇中(mongoDB初階系列一:用戶和權限)介紹了用戶和權限,這一篇將介紹如何在node中進行增刪改查。 準備 首先,要在node中使用mongoDB,需要安裝MongoDB Driver,命令如下:npm install mo...

    kevin 評論0 收藏0
  • mongoDB初階系列一:用戶和權限

    摘要:本文將重點介紹的用戶和權限這一部分。結果返回,表示管理員登錄成功。接下來,用這個管理員給數據庫創建一個普通用戶,并指定其權限為。 前言 對于數據庫而言,用戶和權限是非常重要的一部分,因為這涉及到安全,那么mongoDB的用戶和權限是怎么樣的呢? 說明 環境說明 本文所用的mongoDB版本是3.6,操作系統是windows。 其他說明 限于篇幅,本文不會介紹數據庫從下載到安裝的過程,關...

    CastlePeaK 評論0 收藏0
  • Express+MongoDB步步為'贏'

    摘要:全局安裝腳手架創建項目與是一個對象數據庫,是用來存儲數據的存儲的數據格式為。三封裝數據庫的在文件下新建采用封裝對數據庫的操作,避免回調地獄,使得代碼能夠更好的被讀懂和維護。 前奏 Express 是什么? Express 是一個基于 Node.js 平臺的極簡、靈活的 web 應用開發框架,它提供一系列強大的特性,幫助你創建各種 Web 和移動設備應用。 全局安裝express腳手架 ...

    張春雷 評論0 收藏0

發表評論

0條評論

Null

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<