官方文档: https://mongoosejs.com/docs/index.html
安装
npm install mongoose --save
基本使用
// 1. 引入包
const mongoose = require("mongoose");
// 2. 连接数据库
mongoose.connect('mongodb://127.0.0.1/test_db');
// 3. 获取数据库连接对象
const connection = mongoose.connection;
/**
* 4. 监听数据库状态
**/
// 监听数据库的连接的打开和关闭
connection.once("open", () => {
console.log("数据库连接成功");
});
connection.once("close", () => {
console.log("数据库已经关闭连接");
});
// 监听数据库错误
connection.on("error", error => {
console.log("数据库错误|Database error:" + error);
});
// 5. 创建Schema(模式对象) 类似于SQL中的设计表字段约束(此处的Schema注意大写)
let userSchema = new mongoose.Schema({
name : String,
age: Number,
sex: {
type: String,
default: "男"
},
height: Number
});
// 6. 创建model对象 model("collectionName", "documents")
// 注意: 此处的 collectionName会自动转换为复数形式
let userModel = mongoose.model("users", catSchema);
// 7. 插入一条数据到 users 这个集合中
userModel.create({ name : "zs", age: 18, height: 172 }, error => {
if (error) throw error;
console.log("插入成功");
});
插入数据
// 插入一条数据
userModel.create([ { name : "zs", age: 18, height: 172 } ], error => {
if (error) throw error;
console.log("插入成功");
});
// 一次插入多个数据
userModel.create([
{ name : "zs", age: 18, height: 172 },
{ name : "ls", age: 20, height: 176 },
{ name : "wc", age: 28, height: 178 },
{ name : "ml", age: 32, height: 168 }
], error => {
if (error) throw error;
console.log("插入成功");
});
删除数据
userModel.remove({name: 'ml'}, error => {
if (error) throw error;
console.log("删除成功");
});
修改数据
userModel.update({'name' : 'zs'}, { $set: {height: 182} }, error => {
if (error) throw error;
console.log("修改成功");
});
查询数据
// 带条件条件的查询
userModel.find({name: 'zs'}, (error, docs) => {
if (error) throw error;
console.log(docs);
});
// db.users.find({}, {_id:0, __v:0}).skip(2).limit(1);
userModel.find( {}, { _id: 0, __v:0 }, { skip:2, limit: 1 }, (error, docs) => {
if (error) throw err;
console.log(docs);
});