mongoose模块

一. 概念:

  介绍:是一个第三方模块, 作用:方便在nodejs代码中操作mongodb

  GitHub 地址: https://github.com/Automattic/mongoose

★ nodejs-mongo-mongod关系图:

nodejs-7.1. mongoose模块

 

二、mongoose主要知识点:

1. _id 是 mongodb 集合中的默认主键. 是唯一的.

2. schema 、 model 与 entity 的关系: 符合ORM

★ ORM 对象数据绑定文档集合,对象在文档就在,对象不再文档也就不再。

## 类比: 生产瓶盖
Schema(架构) => 模具设计稿
Model(模型) => 模具
Entity(实体) => 瓶盖

## mongoose 命名时的推荐: 为了方便好记

UserSchema UserModel UserEntity

ArticleSchema ArticleModel ArticleEntity

GoodsSchema GoodsModel GoodsEntity

3. 一般集合数据表名定义为英文单词单数,mongoose 会自动将集合名称变成复数.

4. schema设定文档字段允许的字段类型:

  String
  Number
  Date
  Buffer (字符串类型)
  Boolean
  Mixed  (任意类型)
  ObjectId (主键信息数字ID)
  Array

 

三. 代码使用:
1. 进入工作目录: cd 文件夹路径
2. 安装: cnpm install mongoose --save
3. 操作: 代码栗子链接
  3.1 插入数据 

//实体对象
var ArticleEntity = new ArticleModel({
  title: 'cctv',
  content: '下雨天',
  author: 'xf',
  date: Date.now(),
  click: 1
});

//写入  save 保存
ArticleEntity.save(function(err, doc){
  if(err){
    console.log(err)
  }else{
    console.log(doc);
  }
  mongoose.connection.close();
})
//1. 引入mongoose
var mongoose = require('mongoose');

//2. 连接mongodb数据库
mongoose.connect('mongodb://localhost/db3');

//3. 定义文档结构
var UserSchema = new mongoose.Schema({
username: String,
password: String,
}, {versionKey: false});

//4. 定义模型
var UserModel = mongoose.model('user', UserSchema);

//5. 创建实体
var UserEntity = new UserModel({
username: 'admin',
password: 'adminxxxxx'
});

//6. 写入数据库
UserEntity.save(function(err, user){
if(err){
console.log(err);
}else{
console.log(user);
}
//7. 关闭连接
mongoose.connection.close();
});
app.js

相关文章: