中國男女直接做的視頻網(wǎng)站百度云盤
文章目錄
- 前言
- (1)問題:安裝的mongoose 庫版本不應該過高導致的問題
- (2)重新安裝低版本
- 一、插入文檔
- 1. 代碼
- 2. node終端效果
- 3. 使用mongo.exe查詢數(shù)據(jù)庫的內(nèi)容
- 二、刪除文檔
- 1. 刪除一條
- 2. 批量刪除
- 3. 代碼
- 三、修改文檔
- 1. 修改一條
- 2. 批量修改
- 四、查看文檔
- 1. 查看一條(findOne)
- 2. 查看所有(find )
- (1)查看所有符合條件的數(shù)據(jù)
- (2)查看所有數(shù)據(jù)
前言
(1)問題:安裝的mongoose 庫版本不應該過高導致的問題
比如我默認安裝8.0的版本就會報下面的錯誤
throw new MongooseError(‘Model.create() no longer accepts a callback’); MongooseError: Model.create() no longer accepts a callback
(2)重新安裝低版本
npm i mongoose@6.8.0
package.json 如下圖
一、插入文檔
1. 代碼
// 1:安裝并導入mongoose
const mongoose = require('mongoose')mongoose.set('strictQuery', true); // 解決終端警告的問題
// 2: 連接 mongodb 服務
// mongodb: 表示mongodb 服務,而不是http服務
// 27017 表示端口號
// test 表示數(shù)據(jù)庫名
mongoose.connect('mongodb://127.0.0.1:27017/test')// 3:設置回調(diào)
// 3.1 設置連接成功的回調(diào)
// 設置連接成功的回調(diào): once 事件回調(diào)函數(shù)只執(zhí)行一次
mongoose.connection.once('open', () => {console.log('連接成功');// 4:創(chuàng)建文檔的結構對象// 設置集合中文檔的屬性以及屬性值的類型let userSchema = new mongoose.Schema({name: String,age: Number,sex: String})// 5:創(chuàng)建模型對象 對文檔操作的封裝對象let userModel = mongoose.model("user", userSchema)// 6: 新增userModel.create({name: '張三',age: 18,sex: '男'}, function (err, data){// err 判斷是否有錯誤if (err) {console.log(err)return;} console.log(data);// 7:關閉數(shù)據(jù)庫鏈接(實際項目中不會添加該代碼)mongoose.disconnect();})
})
// 3.2 設置連接錯誤的回調(diào)
mongoose.connection.on('error', () => {console.log('連接錯誤');
})
// 3.3 設置連接關閉的回調(diào)
mongoose.connection.on('close', () => {console.log('連接關閉');
})
2. node終端效果
3. 使用mongo.exe查詢數(shù)據(jù)庫的內(nèi)容
4:注意點
為什么創(chuàng)建的集合名和在mongo.exe中查詢的名字不一樣呢?
二、刪除文檔
1. 刪除一條
deleteOne 刪除一條數(shù)據(jù)的方法
2. 批量刪除
delectMany 批量刪除數(shù)據(jù)的方法
3. 代碼
// 1:安裝并導入mongoose
const mongoose = require('mongoose')mongoose.set('strictQuery', true); // 解決終端警告的問題
// 2: 連接 mongodb 服務
// mongodb: 表示mongodb 服務,而不是http服務
// 27017 表示端口號
// test 表示數(shù)據(jù)庫名
mongoose.connect('mongodb://127.0.0.1:27017/test')// 3:設置回調(diào)
// 3.1 設置連接成功的回調(diào)
// 設置連接成功的回調(diào): once 事件回調(diào)函數(shù)只執(zhí)行一次
mongoose.connection.once('open', () => {console.log('連接成功');// 4:創(chuàng)建文檔的結構對象// 設置集合中文檔的屬性以及屬性值的類型let userSchema = new mongoose.Schema({name: String,age: Number,sex: String})// 5:創(chuàng)建模型對象 對文檔操作的封裝對象let userModel = mongoose.model("user", userSchema)// 6: 刪除一條// userModel.deleteOne({ _id: '654cf280d53122b083bea83f' }, (err, data) => {// // err 判斷是否有錯誤// if (err) {// console.log('刪除失敗', err)// return;// } // console.log(data);// })// 7:批量刪除// 刪除性別為男的所有數(shù)據(jù)userModel.deleteMany({ sex: '男' }, (err, data) => {// err 判斷是否有錯誤if (err) {console.log('刪除失敗', err)return;} console.log(data);})
})
// 3.2 設置連接錯誤的回調(diào)
mongoose.connection.on('error', () => {console.log('連接錯誤');
})
// 3.3 設置連接關閉的回調(diào)
mongoose.connection.on('close', () => {console.log('連接關閉');
})
三、修改文檔
和刪除一樣,不過多描述,記住方法即可
updateOne 修改一條
updateMany 批量修改
1. 修改一條
2. 批量修改
四、查看文檔
注意查看所有和刪除和更新不一樣,查詢所有的方法是find。后面是沒有Many的
findOne 查看一條
find 查看所有
(不是findMany)第一個參數(shù)不加就返回所有數(shù)據(jù),加上就返回符合條件的所有數(shù)據(jù)。