亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

使用 mongoose 操作 mongodb 增刪改查

renweihub / 2871人閱讀

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

使用 mongoose 操作 mongodb 的測試文件

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

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

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

*/

下載mongoose依賴包

npm install --save mongoose 

下載md5加密依賴包

npm install --save blueimp-md5
下面的代碼位置: db_test.js
// 引入 md5 依賴
const md5 = require("blueimp-md5")
1. 連接數(shù)據(jù)庫
// 1.1 引入 mongoose
const mongoose = require("mongoose")
// 1.2 連接指定的數(shù)據(jù)庫(URL 只有數(shù)據(jù)庫是變化的)
mongoose.connect("mongodb://localhost:27017/zp_test", {useNewUrlParser: true})
// 1.3 獲取連接對象
const conn = mongoose.connection
// 1.4 綁定連接完成的監(jiān)聽(用來提示連接成功)
conn.on("connected", function () {
  console.log("數(shù)據(jù)庫連接成功!")
})
2. 得到對應特定集合的 Model
// 2.1 字義 Schema(描述文檔結(jié)構(gòu))
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 或其實例對集合數(shù)據(jù)進行 CRUD 操作
 3.1 通過 Model 實例的 save() 添加數(shù)據(jù)
function testSave() {
  // user 數(shù)據(jù)對象
  const user = {
    username: "mandy",
    password: md5("1234"),
    type: "求職者"
  }
  // 創(chuàng)建 Model 實例
  const userModel = new UserModel(user)
  // 或者像下面這樣添加數(shù)據(jù)
  // const userModel = new UserModel({username: "Tom", password: md5("3333"), type: "老板"})
  
  // 保存到數(shù)據(jù)庫
  userModel.save(function (err, user) {
    console.log("save", err, user)
  })
}
// testSave()

 3.2 通過 Model 的 find()/findOne() 查詢多個或一個數(shù)據(jù)
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() 更新某個數(shù)據(jù)
function testUpdate() {
  UserModel.findByIdAndUpdate({_id: "5cdfacc55684652a08b49014"}, {username: "一個老板"}, function (err, user) {
    console.log("findByIdAndUpdate()", err, user)
  })
}
// testUpdate()

 3.4 通過 Model 的 remove() 刪除匹配的數(shù)據(jù)
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

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

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

相關(guān)文章

  • 使用express+mongoosemongodb實現(xiàn)刪改操作

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

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

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

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

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

    yzzz 評論0 收藏0
  • node express mongoose簡單實現(xiàn)全棧之刪改

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

    AndroidTraveler 評論0 收藏0
  • mongoose 鏈接數(shù)據(jù)庫,刪改

    摘要:根據(jù)個人編碼習慣,僅供參考如中途看的有點蒙圈,可以轉(zhuǎn)到官網(wǎng)查看引入模塊連接數(shù)據(jù)庫鏈接狀態(tài)數(shù)據(jù)庫鏈接成功為了查看是否鏈接成功所以做一個回調(diào)創(chuàng)建模式對象例將賦值給變量創(chuàng)建對象官網(wǎng)創(chuàng)建通過來創(chuàng)建代表的是數(shù)據(jù)庫中的集合,通過才能對數(shù)據(jù)庫進行操作可在 根據(jù)個人編碼習慣,僅供參考 如中途看的有點蒙圈,可以轉(zhuǎn)到官網(wǎng)查看 引入模塊 var mongoose = require(mongoose); ...

    lanffy 評論0 收藏0

發(fā)表評論

0條評論

renweihub

|高級講師

TA的文章

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