Mongoose
1. 基础知识
-
基础概念
document 基本存储单位=> record
collection 存储document的集合 => table
schema document模板 => 字段名集合
model 通过schema 生成模板, 通过模板进行增删改查
-
安装配置
npm install mongoose --save
-
引入模块
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
如果由用户名和密码:
mongoose.connect('mongodb://username:password@localhost:port/dbname')
-
定义Schema
MongoDB中的Schema类似SQL中数据库字段, 映射到MongoDB的一个Collection, 可以理解为一种表的格式。
let UserSchema = mongoose.Schema({ name:String, age:Number, status:Number })
以上就定义了一个名为UserSchema的Schema数据类型, 但是有类型还不够, 还需要根据Schema创建Model实例
-
定义和创建数据模型Model
mongoose接受1~2个参数
// model里的第一个参数modelName: 首字母大写, 和Collection名称对应 // 模型会与模型名称相同的多个数据库集合建立连接 let User = mongoose.model('User', UserSchema);
现在就创建Schema类型对应mongoDB Collection的连接, 可以通过操作Model进行增删改查了。
注意, mongoDB会根据model名自动创建collection, 单数名词变复数, 字母变小写, 有些词的复数会被同义替换(peason, people)
Model类似与我们与mongoDB对应Collection的一个连接
2. 增删改查
-
增加元素
创建Document
在mongoDB中, document类似SQL中的一行数据(记录), 我们根据model来创建记录
let user = new User({ name: 'Mouse', age: 99, state : 1 });
现在我们拥有了一个文档
user.save(function(err) { if (err) { return console.error(err); } console.log('saved'); })
mongoDB容错性很高, 如果键名错误或者忽略, 则忽略
-
查找元素:
User.find({}, function(err, doc) { if (err) { console.log(err); } console.log(doc) });