成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

mongoDB初階系列二:node中的增刪改查

kevin / 629人閱讀

摘要:前言上一篇中初階系列一用戶和權(quán)限介紹了用戶和權(quán)限,這一篇將介紹如何在中進行增刪改查。這是初階系列的第二篇,接下來還有第三篇,借助,更優(yōu)雅地操作數(shù)據(jù)。

前言

上一篇中(mongoDB初階系列一:用戶和權(quán)限)介紹了用戶和權(quán)限,這一篇將介紹如何在node中進行增刪改查。

準備

首先,要在node中使用mongoDB,需要安裝MongoDB Driver,命令如下:npm install mongodb --save
github地址:node-mongodb-native

同時,記得開啟mongoDB服務(wù)。

下面代碼將在數(shù)據(jù)庫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") // 沒有則創(chuàng)建
  tasks.insertOne(
    {
      "project": "task1",
      "description": "task1 description."
    },
    {safe: true},
    function(err, documents) {
      if (err) throw err;
      console.log(documents.insertedId);
    }
  );

  client.close()
})

運行程序,發(fā)現(xiàn)在控制臺打印出了如下結(jié)果

Connected successfully to server
5b59d53ae3d895184824586b

這個返回的5b59d53ae3d895184824586b是MongoDB的文檔標識符,它是唯一的,它的本質(zhì)是二進制JSON(即BSON),BSON是MongoDB用來交換數(shù)據(jù)的主要數(shù)據(jù)格式,MongoDB服務(wù)器用它代替JSON交換數(shù)據(jù)。大多數(shù)情況下,它更節(jié)省空間,解析起來也更快。
聲明的{safe: true}表明,等數(shù)據(jù)庫操作完成之后,才執(zhí)行回調(diào)回調(diào)函數(shù)。

注意:這里為了方便,沒有開啟授權(quán)模式,所以,在登錄url中不需要用戶名和密碼也可以在登錄隨便進行增刪改查。但在產(chǎn)品環(huán)境請記得務(wù)必開啟授權(quán)模式。

下面代碼將在數(shù)據(jù)庫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的文檔,那么,也只會刪除找到的第一天文檔。

下面代碼將在數(shù)據(jù)庫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的文檔,程序?qū)伋鰯嘌藻e誤,如下:

下面代碼將在數(shù)據(jù)庫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條, 則在控制臺打印記錄條數(shù)
  })
  client.close()
})

find()方法找到所有文檔,toArray()將結(jié)果轉(zhuǎn)換成數(shù)組形式,運行程序,結(jié)果如下:

小結(jié)

雖然上面四個小程序略顯簡單,但是不積跬步,無以至千里,如果你真的掌握了基本的增刪改查,那么,掌握復(fù)雜的應(yīng)用也只是時間問題了。
這是mongo初階系列的第二篇,接下來還有第三篇,借助mongoose,更優(yōu)雅地操作數(shù)據(jù)。敬請期待!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/96309.html

相關(guān)文章

  • mongoDB初階系列node的增刪改

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

    Barrior 評論0 收藏0
  • mongoDB初階系列三:mongoose

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

    Null 評論0 收藏0
  • mongoDB初階系列三:mongoose

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

    yzzz 評論0 收藏0
  • Node.js學(xué)習(xí)之路23——Node.js利用mongoose連接mongodb數(shù)據(jù)庫

    摘要:類比一下你有一個巨型停車場,里邊分了不同的停車區(qū)集合,這里的,每個停車區(qū)可以停很多車下文提到的,相當(dāng)于每個數(shù)據(jù)集合里邊可以有很多張數(shù)據(jù)表。 Node.js利用mongoose連接mongodb數(shù)據(jù)庫 Node.js連接mongodb數(shù)據(jù)庫有很多種方法,通過mongoose模塊引入是其中的一個方法 代碼組織結(jié)構(gòu) |---|根目錄 |---|---|connect.js(mongoose測...

    ssshooter 評論0 收藏0
  • Node.js學(xué)習(xí)之路23——Node.js利用mongoose連接mongodb數(shù)據(jù)庫

    摘要:類比一下你有一個巨型停車場,里邊分了不同的停車區(qū)集合,這里的,每個停車區(qū)可以停很多車下文提到的,相當(dāng)于每個數(shù)據(jù)集合里邊可以有很多張數(shù)據(jù)表。 Node.js利用mongoose連接mongodb數(shù)據(jù)庫 Node.js連接mongodb數(shù)據(jù)庫有很多種方法,通過mongoose模塊引入是其中的一個方法 代碼組織結(jié)構(gòu) |---|根目錄 |---|---|connect.js(mongoose測...

    jsummer 評論0 收藏0

發(fā)表評論

0條評論

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