- 在
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:
- 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:
- options:
增新增文档Model.create()
Model.create(docs [, options])await User.create({ name: 'gaga' });await User.create([{ name: 'mama' }, { name: 'nana' }]);
- docs:要插入的文档。
- 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.jsconst 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,};