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

資訊專欄INFORMATION COLUMN

使用 mongoose 操作 mongodb 增刪改查

renweihub / 2812人閱讀

摘要:使用操作的測試文件連接數據庫引入連接指定的數據庫只有數據庫是變化的獲取連接對象綁定連接完成的監聽用來提示連接成功得到對應特定集合的字義描述文檔結構定義與集合對應,可以操作集合通過或其實例對集合數據進行操作通過實例的添加數據通過的查詢多個或一

使用 mongoose 操作 mongodb 的測試文件

連接數據庫
1.1 引入 mongoose
1.2 連接指定的數據庫(URL 只有數據庫是變化的)
1.3 獲取連接對象
1.4 綁定連接完成的監聽(用來提示連接成功)

得到對應特定集合的 Model
2.1 字義 Schema(描述文檔結構)
2.2 定義 Model(與集合對應,可以操作集合)

通過 Model 或其實例對集合數據進行 CRUD 操作
3.1 通過 Model 實例的 save() 添加數據
3.2 通過 Model 的 find()/findOne() 查詢多個或一個數據
3.3 通過 Model 的 findByIdAndUpdate() 更新某個數據
3.4 通過 Model 的 deleteOne() 刪除匹配的數據

*/

下載mongoose依賴包

npm install --save mongoose 

下載md5加密依賴包

npm install --save blueimp-md5
下面的代碼位置: db_test.js
// 引入 md5 依賴
const md5 = require("blueimp-md5")
1. 連接數據庫
// 1.1 引入 mongoose
const mongoose = require("mongoose")
// 1.2 連接指定的數據庫(URL 只有數據庫是變化的)
mongoose.connect("mongodb://localhost:27017/zp_test", {useNewUrlParser: true})
// 1.3 獲取連接對象
const conn = mongoose.connection
// 1.4 綁定連接完成的監聽(用來提示連接成功)
conn.on("connected", function () {
  console.log("數據庫連接成功!")
})
2. 得到對應特定集合的 Model
// 2.1 字義 Schema(描述文檔結構)
const userSchema = mongoose.Schema({
  username: {type: String, require: true}, // 用戶名
  password: {type: String, required: true}, // 密碼
  type: {type: String, required: true} // 用戶類型: 求職者/老板
})
// 2.2 定義 Model(與集合對應,可以操作集合)
const UserModel = mongoose.model("users", userSchema) // 集合名: users
3. 通過 Model 或其實例對集合數據進行 CRUD 操作
 3.1 通過 Model 實例的 save() 添加數據
function testSave() {
  // user 數據對象
  const user = {
    username: "mandy",
    password: md5("1234"),
    type: "求職者"
  }
  // 創建 Model 實例
  const userModel = new UserModel(user)
  // 或者像下面這樣添加數據
  // const userModel = new UserModel({username: "Tom", password: md5("3333"), type: "老板"})
  
  // 保存到數據庫
  userModel.save(function (err, user) {
    console.log("save", err, user)
  })
}
// testSave()

 3.2 通過 Model 的 find()/findOne() 查詢多個或一個數據
function testFind() {
  // 查找多個
  UserModel.find(function (err, users) { // 如果有匹配返回一個[user, user...], 如果沒有一個匹配的返回[]
    console.log("find()", err, users)
  })
  // 查找一個
  UserModel.findOne({_id: "5cdf99ebf3539334948ae2c8"}, function (err, user) { // 如果有匹配返回的是一個user
    console.log("findOne()", err, user)
  })
}
// testFind()

 3.3 通過 Model 的 findByIdAndUpdate() 更新某個數據
function testUpdate() {
  UserModel.findByIdAndUpdate({_id: "5cdfacc55684652a08b49014"}, {username: "一個老板"}, function (err, user) {
    console.log("findByIdAndUpdate()", err, user)
  })
}
// testUpdate()

 3.4 通過 Model 的 remove() 刪除匹配的數據
function testDelete() {
  UserModel.deleteOne({_id: "5cdf9d761a1c050c70bc0d09"}, function (err, result) {
    console.log("deleteOne()", err, result)
  })
}
// testDelete()

運行:

node db_test.js

可以在mongodb的可視化工具中查看效果.

可視化工具 webstorm中的 Mongo Plugin 插件 Robo 3T

下載地址: https://robomongo.org/download

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

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

相關文章

  • 使用express+mongoosemongodb實現刪改操作

    摘要:項目地址寫在開頭本文主要分享我如何使用對實現增刪改查操作,感謝社區所有精品文章的幫助,以及的開源項目對我的啟發。我們這個項目是建立一個班級學生管理系統,能夠對學生的姓名及學號進行增刪改查的操作。 項目地址:https://github.com/jrainlau/mongoose_cru... 寫在開頭 本文主要分享我如何使用express+mongoose對mongodb實現增刪改查...

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

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

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

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

    yzzz 評論0 收藏0
  • node express mongoose簡單實現全棧之刪改

    摘要:作為一個有志向的前端,怎么能不搞搞全棧呢。。。地址歡迎大家多多交流前端技術啊,如果大家喜歡的話,請給我一個小小的哦 作為一個有志向的前端,怎么能不搞搞全(zhuang)棧(bi)呢。。。說搞咱就搞啊,后端就用node,數據庫就用mongodb,前端呢,呃,再搞個node的web框架express,思路搞定,開始搭建我們的環境,搭建之前還是先看看我們的目標和成果 項目的目標和成果 sh...

    AndroidTraveler 評論0 收藏0

發表評論

0條評論

renweihub

|高級講師

TA的文章

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