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!
推薦閱讀:
- MongoDB基礎之查詢文檔
- node.js連接mongoose數據庫方法詳解
- 教你使用mongoose實現多集合關聯查詢
- MongoDB 常用的crud操作語句
- NestJs使用Mongoose對MongoDB操作的方法