日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

使用mongoose 在 Node中操作MongoDB数据库

發布時間:2024/7/5 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用mongoose 在 Node中操作MongoDB数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MongoDB

關系型和非關系型數據庫

關系型數據庫(表就是關系,或者說表與表之間存在關系)。

  • 所有的關系型數據庫都需要通過sql語言來操作
  • 所有的關系型數據庫在操作之前都需要設計表結構
  • 而且數據表還支持約束
    • 唯一的
    • 主鍵
    • 默認值
    • 非空

非關系型數據庫

  • 非關系型數據庫非常的靈活
  • 有的關系型數據庫就是key-value對兒
  • 但MongDB是長得最像關系型數據庫的非關系型數據庫
    • 數據庫 -》 數據庫
    • 數據表 -》 集合(數組)
    • 表記錄 -》文檔對象

一個數據庫中可以有多個數據庫,一個數據庫中可以有多個集合(數組),一個集合中可以有多個文檔(表記錄)

{qq:{user:[{},{},{}...]} }
  • 也就是說你可以任意的往里面存數據,沒有結構性這么一說

安裝

  • 下載

    • 下載地址:https://www.mongodb.com/download-center/community

  • 安裝


一直Next即可。。。

這是安裝MongoDB的服務。這是4之后的版本有的,這里安裝了以后,就不用配置dbpath和logpath,也不用配置服務了。安裝完了,就直接可以使用MongoDB。


npm i mongoose
  • 配置環境變量
  • 找到安裝好的MongoDB文件夾下的bin目錄


    • 最后輸入mongod --version測試是否安裝成功

    啟動和關閉數據庫

    啟動:

    # mongodb 默認使用執行mongod 命令所處盼復根目錄下的/data/db作為自己的數據存儲目錄 # 所以在第一次執行該命令之前先自己手動新建一個 /data/db mongod

    如果想要修改默認的數據存儲目錄,可以:

    mongod --dbpath = 數據存儲目錄路徑

    注意:mongodb 4版本以上,不需要再手動區啟動服務,默認已經自動啟動了

    停止:

    在開啟服務的控制臺,直接Ctrl+C; 或者直接關閉開啟服務的控制臺。

    連接數據庫

    連接:

    # 該命令默認連接本機的 MongoDB 服務 mongo

    退出:

    # 在連接狀態輸入 exit 退出連接 exit

    基本命令

    • show dbs

      • 查看數據庫列表(數據庫中的所有數據庫)
    • db

      • 查看當前連接的數據庫
    • use 數據庫名稱

      • 切換到指定的數據庫,(如果沒有會新建)

    • show collections

      • 查看當前目錄下的所有數據表
    • db.表名.find()

      • 查看表中的詳細信息

    二、在Node中如何操作MongoDB數據庫

    使用官方的MongoDB包來操作

    ? http://mongodb.github.io/node-mongodb-native/
    https://www.npmjs.com/package/mongodb

    使用第三方包mongoose來操作MongoDB數據庫(推薦)

    ? 第三方包:mongoose基于MongoDB官方的mongodb包再一次做了封裝,名字叫mongoose,是WordPress項目團隊開發的。

    ? https://mongoosejs.com/

    mongoose的第一個demo

    新建一個項目文件夾:mongoose-demo,然后cmd 執行 npm init -y:

    執行npm install mongoose:

    demo1.js:

    // 1. 引入包 const mongoose = require('mongoose');// 2. 連接MongoDB 數據庫 mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true,useUnifiedTopology: true });// 3. 創建一個模型 // 就是在設計數據庫 // MongoDB是動態的,非常靈活,只需要在代碼中設計你的數據庫就可以了 // mongoose 這個包就可以讓你的設計編寫過程變得非常的簡單 const Cat = mongoose.model('Cat', {name: String });// 4. 實例化一個Cat const kitty = new Cat({name: 'Zildjian' });// 5. 持久化保存kitty實例 kitty.save().then(() => console.log('meow'));



    mongoose:

    官網:http:/mongoosejs.com/
    官方指南:http:/mongoosejs.com/docs/guide.html
    官方API文檔:http:/mongooseis.com/docs/api.html

    mongoose基本使用:

    1. 設計Schema發布Model:
    // 1.導包 const mongoose = require('mongoose')const Schema = mongoose.Schema// 2.連接數據庫 // 這里指定連接的數據庫mydb可以不需要存在,當你插入第一條數據之后就會幫你自動創建這個數據庫 mongoose.connect('mongodb://localhost/mydb')// 3.設計集合結構(表結構) // 字段名稱就是表結構中的屬性名稱 // 值 const userSchema = new Schema({username: {type: String,require: true // 必須有該屬性},password: {type: String,require: true},email: {type: String} });// 3.將文檔結構發布為模型 // mongoose.model() 就是用來將一個架構發布為 model // 第一個參數: 傳入一個大寫名詞單數字符串,用來表示你的數據庫名稱 // mongoose會自動將大寫名詞的字符串生成小寫復數的集合名稱 // 例如:這里的User最終會變為users集合名稱 // 第二個參數: 架構Schema // 返回值: 模型構造函數 var User = mongoose.model('User',userSchema)// 4.當我們有了模型構造函數之后,就可以使用這個構造函數對users集合中的數據進行操作
    2. 增加數據
    // 1.導包 const mongoose = require('mongoose')const Schema = mongoose.Schema// 2.連接數據庫 // 這里指定連接的數據庫mydb可以不需要存在,當你插入第一條數據之后就會幫你自動創建這個數據庫 mongoose.connect('mongodb://localhost/mydb')// 3.設計集合結構(表結構) // 字段名稱就是表結構中的屬性名稱 // 值 const userSchema = new Schema({username: {type: String,require: true // 必須有該屬性},password: {type: String,require: true},email: {type: String} });// 3.將文檔結構發布為模型 // mongoose.model() 就是用來將一個架構發布為 model // 第一個參數: 傳入一個大寫名詞單數字符串,用來表示你的數據庫名稱 // mongoose會自動將大寫名詞的字符串生成小寫復數的集合名稱 // 例如:這里的User最終會變為users集合名稱 // 第二個參數: 架構Schema // 返回值: 模型構造函數 var User = mongoose.model('User',userSchema)// 4.當我們有了模型構造函數之后,就可以使用這個構造函數對users集合中的數據進行操作 var admin = new User({username: 'admin',password: '123456',email: 'admin@admin.com' })admin.save(function(err, ret) {if(err) {console.log('保存失敗')} else {console.log('保存成功!')console.log(ret)} })

    3. 查詢數據
    // 1.導包 const mongoose = require('mongoose')const Schema = mongoose.Schema// 2.連接數據庫 // 這里指定連接的數據庫mydb可以不需要存在,當你插入第一條數據之后就會幫你自動創建這個數據庫 mongoose.connect('mongodb://localhost/mydb')// 3.設計集合結構(表結構) // 字段名稱就是表結構中的屬性名稱 // 值 const userSchema = new Schema({username: {type: String,require: true // 必須有該屬性},password: {type: String,require: true},email: {type: String} });// 3.將文檔結構發布為模型 // mongoose.model() 就是用來將一個架構發布為 model // 第一個參數: 傳入一個大寫名詞單數字符串,用來表示你的數據庫名稱 // mongoose會自動將大寫名詞的字符串生成小寫復數的集合名稱 // 例如:這里的User最終會變為users集合名稱 // 第二個參數: 架構Schema // 返回值: 模型構造函數 var User = mongoose.model('User', userSchema)// 4.當我們有了模型構造函數之后,就可以使用這個構造函數對users集合中的數據進行操作 // 新增數據操作 /* var admin = new User({username: 'zepzep',password: '000000',email: 'zep@zep.com' })admin.save(function(err, ret) {if(err) {console.log('保存失敗')} else {console.log('保存成功!')console.log(ret)} }) */// 查詢數據操作 // 1.查詢所有數據 /* User.find(function(err, ret) {if(err) {console.log('查詢失敗')} else {console.log(ret)} }) */// 2.按條件查詢數據,返回值為數組 /* User.find({username: 'zepzep' }, function(err, ret) {if (err) {console.log('查詢失敗')} else {console.log(ret)} })*/// 3.按條件查詢數據,返回值為查找到的匹配的第一個的對象 User.findOne({username: 'zepzep',password: '111' }, function(err, ret) {if (err) {console.log('查詢失敗')} else {console.log(ret)} })

    4. 刪除數據
    // 1.導包 const mongoose = require('mongoose')const Schema = mongoose.Schema// 2.連接數據庫 // 這里指定連接的數據庫mydb可以不需要存在,當你插入第一條數據之后就會幫你自動創建這個數據庫 mongoose.connect('mongodb://localhost/mydb')// 3.設計集合結構(表結構) // 字段名稱就是表結構中的屬性名稱 // 值 const userSchema = new Schema({username: {type: String,require: true // 必須有該屬性},password: {type: String,require: true},email: {type: String} });// 3.將文檔結構發布為模型 // mongoose.model() 就是用來將一個架構發布為 model // 第一個參數: 傳入一個大寫名詞單數字符串,用來表示你的數據庫名稱 // mongoose會自動將大寫名詞的字符串生成小寫復數的集合名稱 // 例如:這里的User最終會變為users集合名稱 // 第二個參數: 架構Schema // 返回值: 模型構造函數 var User = mongoose.model('User', userSchema)// 4.當我們有了模型構造函數之后,就可以使用這個構造函數對users集合中的數據進行操作 // 新增數據操作 /* var admin = new User({username: 'zepzep',password: '000000',email: 'zep@zep.com' })admin.save(function(err, ret) {if(err) {console.log('保存失敗')} else {console.log('保存成功!')console.log(ret)} }) */// 查詢數據操作 // 1.查詢所有數據 /* User.find(function(err, ret) {if(err) {console.log('查詢失敗')} else {console.log(ret)} }) */// 2.按條件查詢數據,返回值為數組 /* User.find({username: 'zepzep' }, function(err, ret) {if (err) {console.log('查詢失敗')} else {console.log(ret)} })*/// 3.按條件查詢數據,返回值為查找到的匹配的第一個的對象 /* User.findOne({username: 'zepzep',password: '111' }, function(err, ret) {if (err) {console.log('查詢失敗')} else {console.log(ret)} }) */// 刪除數據操作 User.remove({username: 'zepzep' }, function(err, ret) {if(err) {console.log('刪除失敗')} else {console.log('刪除成功!')console.log(ret)} })

    5.更新數據
    // 1.導包 const mongoose = require('mongoose')const Schema = mongoose.Schema// 2.連接數據庫 // 這里指定連接的數據庫mydb可以不需要存在,當你插入第一條數據之后就會幫你自動創建這個數據庫 mongoose.connect('mongodb://localhost/mydb')// 3.設計集合結構(表結構) // 字段名稱就是表結構中的屬性名稱 // 值 const userSchema = new Schema({username: {type: String,require: true // 必須有該屬性},password: {type: String,require: true},email: {type: String} });// 3.將文檔結構發布為模型 // mongoose.model() 就是用來將一個架構發布為 model // 第一個參數: 傳入一個大寫名詞單數字符串,用來表示你的數據庫名稱 // mongoose會自動將大寫名詞的字符串生成小寫復數的集合名稱 // 例如:這里的User最終會變為users集合名稱 // 第二個參數: 架構Schema // 返回值: 模型構造函數 var User = mongoose.model('User', userSchema)// 4.當我們有了模型構造函數之后,就可以使用這個構造函數對users集合中的數據進行操作 // 新增數據操作 /* var admin = new User({username: 'zepzep',password: '000000',email: 'zep@zep.com' })admin.save(function(err, ret) {if(err) {console.log('保存失敗')} else {console.log('保存成功!')console.log(ret)} }) */// 查詢數據操作 // 1.查詢所有數據 /* User.find(function(err, ret) {if(err) {console.log('查詢失敗')} else {console.log(ret)} }) */// 2.按條件查詢數據,返回值為數組 /* User.find({username: 'zepzep' }, function(err, ret) {if (err) {console.log('查詢失敗')} else {console.log(ret)} })*/// 3.按條件查詢數據,返回值為查找到的匹配的第一個的對象 /* User.findOne({username: 'zepzep',password: '111' }, function(err, ret) {if (err) {console.log('查詢失敗')} else {console.log(ret)} }) */// 刪除數據操作 /* User.remove({username: 'zepzep' }, function(err, ret) {if(err) {console.log('刪除失敗')} else {console.log('刪除成功!')console.log(ret)} }) */// 更新數據操作 User.findByIdAndUpdate('6062cff077b662686460e549', {password: '123' }, function(err, ret) {if(err) {console.log('更新失敗')} else {console.log('更新成功!')console.log(ret)} })

    總結

    以上是生活随笔為你收集整理的使用mongoose 在 Node中操作MongoDB数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。