MongoDB連接數據庫並創建數據等使用方法

1.mongodb官網

MongoDB: the application data platform | MongoDB

2.進入MongoDB官網下載MongoDB以及MongoDB compass 和Mongodb–database–tools

3.nodejs操作MongoDB數據庫需要依賴nodejs的第三方包mongoose 

終端指令: npm install mongoose

4.

 5.

以管理員身份運行PowerShell cd到文件所在目錄 如果沒有開啟MongoDB的話 

使用net start mongodb 指令啟動

 6.

//引入mongoose模塊
const mongoose = require('mongoose');
// console.log(mongoose);
 
//todo 連接數據庫
mongoose.connect('mongodb://localhost/test001')
    .then(() => console.log('數據庫鏈接成功'))
    .catch(erro => console.log('連接失敗'))

7.在vscode的集成終端中cd到文件所在目錄,使用nodemon ‘node 02.js’指令打開文件

 8. 設定集合規則 創建集合並應用規則

//todo 設定集合規則
const courseSchema = new mongoose.Schema({
    name: String,
    author: String,
    isPublished: Boolean
});
// todo 創建集合並應用規則
// todo 1.集合名稱'' 2.集合規則
const Course = mongoose.model('Course', courseSchema);

  9. 創建集合實例document的兩種方式

// todo 第一種方式   創建集合實例 文檔document
const course = new Course({
    name:'xiaoguo',
    author:'aaa',
    tags:['node','backend'],
    isPublished:false
})
// 將數據保存在數據庫中
course.save();
 
 
 
//todo 第二種方式 創建文檔 不需要使用course.save()方式保存,會自動保存進數據庫
Course.create({
    name:'xiaowei',
    author:'sh',
    isPublished:true
},(erro,data)=>{
    console.log(erro);
    console.log(data)
});
//也支持promise對象
Course.create({
    name:'xiaoli',
    author:'zz',
    isPublished:true
}).then(data=> console.log(data))
.catch(erro=>console.log(erro))

 10. 查詢用戶集合中的所有文檔,返回的是一個數組

// todo 查詢用戶集合中的所有文檔 返回的是一個數組
Course.find()
.then(result =>{console.log(result)})

 11. 通過ID字段查詢用戶集合中的某個文檔,返回數組

// todo 通過ID字段查詢用戶集合中的某個文檔 返回數組
Course.find({
_id:"619b0f75dc5e07d1b9924ee9"
})
.then(result =>{console.log(result)})

 12. 根據條件查找文檔 如果不寫條件返回數據庫中的第一條文檔 返回一個對象

// todo 根據條件查找文檔 如果不寫條件返回數據庫中的第一條文檔 返回一個對象
Course.findOne({
    name:'xiaowei'
})
.then(result=>console.log(result))

13. 根據范圍條件查找文檔 $gt 最小值 $lt最大值

// todo 根據范圍條件查找文檔
Course.find({
    age: { $gt: 20, $lt: 50 }
})
.then(result => console.log(result))

 14. 查詢包含

// todo 根據范圍條件查找文檔
Course.find({
    name: { $in: ['xiao'] }
})
.then(result => console.log(result))

 15. 選擇要查詢的字段並排序 默認升序 降序加個-

// todo 選擇要查詢的字段 (升序)
Course.find().select('name age')
//相反的順序用.sort('-age') (降序)
.then(result => console.log(result))

  16.  skip跳過前兩條數據 limit限制查詢數量

// todo skip跳過前兩條數據 limit限制查詢數量
Course.find().skip(2).limit(2)
.then(result => console.log(result))

   17.  查找一個文檔並刪除文檔 返回值是刪除的文檔 如果匹配到多個文檔 隻刪除第一個

// todo 查找一個文檔並刪除文檔 返回值是刪除的文檔 如果匹配到多個文檔 隻刪除第一個
Course.findOneAndDelete({
   _id:"619b0f75dc5e07d1b9924ee9"
})
.then(result=>console.log(result))

 18.  刪除多個文檔  返回一個對象 {n:刪除的文檔數量 ok:1(刪除成功)}

// todo 刪除多個文檔  返回一個對象 {n:刪除的文檔數量 ok:1(刪除成功)}
Course.deleteMany({
   _id:"619b0f75dc5e07d1b9924ee9"
})
.then(result=>console.log(result))

  19.  更新單個文檔 裡面傳兩個對象 ,隔開 第一個對象是查詢條件 第二個要改的值

// todo 更新單個文檔 裡面傳兩個對象 ,隔開 第一個對象是查詢條件 第二個要改的值
Course.updateOne(
{name:'xiaoguo'},
{name:'xiaoguoguo'}
)
.then(result=>console.log(result))

   20.  更新多個文檔 裡面傳兩個對象 ,隔開 第一個對象是查詢條件 第二個要改的值

// todo 更新多個文檔 裡面傳兩個對象 ,隔開 第一個對象是查詢條件 第二個要改的值
Course.updateMany(
{},
{age:18}
)
.then(result=>console.log(result))

    21. 設置mongoose驗證

 針對String類型字段      required: [true,’錯誤說明’]   必傳字段  

  針對String類型字段      minlength: [n,’錯誤說明’]       最小字段長度

 針對String類型字段       maxlength: [n,’錯誤說明’]      最大字段長度

  針對String類型字段      trim:true       //去除字符串兩頭的空格

  針對Number類型字段      min: [n,’錯誤說明’]       最小數值

 針對Number類型字段       max: [n,’錯誤說明’]      最大數值

 設置時間默認值 當用戶未傳此字段的數據時 啟用當前時間為默認值 

 列舉出當前字段可以取的值,必須在范圍內上傳

 自定義錯誤信息時的格式

制定規則驗證用戶傳入的值的屬性是否符合規范 自定義錯誤信息 message 

 控制臺獲取錯誤信息

 

到此這篇關於MongoDB連接數據庫並創建數據等使用方法的文章就介紹到這瞭,更多相關MongoDB連接數據庫內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: