在src目錄下新建一個文件夾models,用來存放數據模型和操作資料庫的方法。 在models目錄下新建一個文件user.js,用來管理用戶信息相關的資料庫操作。 相關的數據模型和資料庫操作方法,最後通過module.exports暴露出去。 mongoose版本8.0.0 1-創建結構 const ...
- 在
src
目錄下新建一個文件夾models
,用來存放數據模型和操作資料庫的方法。 - 在
models
目錄下新建一個文件user.js
,用來管理用戶信息相關的資料庫操作。 - 相關的數據模型和資料庫操作方法,最後通過
module.exports
暴露出去。
mongoose版本8.0.0
1-創建結構
const mongoose = require("mongoose");
const userSchema = new mongoose.Schema(
{
id: {
type: Number,
index: true,
unique: true,
},
name: String,
},
{
versionKey: false, // 設置false,存取數據就不會帶版本id
}
);
2-創建模型
const User = mongoose.model("user", userSchema);
3-查增改刪
查
批量查詢Model.find()
Model.find(filter [, projection] [, options])
await User.find({ name: 'kaka' }, 'name phone'); // 欄位前加'-'表示不返回的欄位
await User.find({}, { name: 1, phone: 1 }); // 1-要返回的欄位 0-不返回的欄位
- filter:
- projection:<Object|String|Array[String]>要返回的可選欄位。
- options:
可以包在函數里,最後通過
module.exports
把函數暴露出去。// 查 function FindUserList() { return User.find(); }
單個查詢Model.findOne()
Model.findOne([conditions] [, projection] [, options])
await User.findOne({ id: 1 }, { name: 1, id: 1 });
- conditions:
- projection:<Object|String|Array[String]>要返回的可選欄位。
- options:
增
新增文檔Model.create()
Model.create(docs [, options])
await User.create({ name: 'gaga' });
await User.create([{ name: 'mama' }, { name: 'nana' }]);
- docs:<Array|Object>要插入的文檔。
- options:
改
修改文檔Model.findOneAndUpdate()
Model.findOneAndUpdate([conditions] [, update] [, options])
const options = {
new: true,
strict: true,
};
await User.findOneAndUpdate({ id: 1 }, { id: 1, name: 'newName' }, options);
- conditions:
- update:
- options:
刪
刪除文檔Model.findOneAndDelete()
Model.findOneAndDelete(conditions [, options])
await User.findOneAndDelete({ id: 1 });
- conditions:
- options:
完整代碼
// src/models/user.js
const mongoose = require("mongoose");
const userSchema = new mongoose.Schema(
{
id: {
type: Number,
index: true,
unique: true,
},
name: String,
},
{
versionKey: false,
}
);
const User = mongoose.model("user", userSchema);
// 查-列表
function FindUserList() {
return User.find();
}
// 查
function FindUser(id) {
return User.findOne({ id });
}
// 改
function UpdateUser(id, update) {
const options = {
new: true,
strict: true,
};
return User.findOneAndUpdate({ id }, update, options);
}
// 增
function AddUser(user) {
return User.create(user);
}
// 刪
function DeleteUser(id) {
return User.findOneAndDelete({ id });
}
module.exports = {
User,
FindUserList,
FindUser,
UpdateUser,
AddUser,
DeleteUser,
};