NoSQL——MongoDB(mongoose);

mongoose模块;

Mongoose简介;

  • Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用。

-官方文档:https://www.npmjs.com/package/mongoose
http://mongoosejs.com/

Mongoose安装;

$ npm install mongoose;

连接数据库;

使用mongoose连接数据库的前提条件是:

  1. mongo数据库已经运行。
  2. 已经安装了mongoose包
var mongoose = require("mongoose");
// 连接字符串格式为mongodb://主机/数据库名
mongoose.connect('mongodb://localhost/student);
// 上面这句的意思是连接到本地的mongodb的student表。

扩展:

// 连接本地mongodb ,本机的ip 127.0.0.1,端口:27017 数据库:student
mongoose.connect("mongodb://127.0.0.1:27017/student",function(err){
   if(!err){//如果连接成功,则打印出connected to Mongodb
      console.log("connected to Mongodb");
   }else{
      throw err;//如果连接失败,则抛出异常
   }
});
新增数据;

先讲解一个概念 Schema:

  • 它可以理解为数据库模型骨架,可以看作工厂中模具一样,好比一个茶杯,喝水是茶杯最终的功能,茶杯本身就像是Model,那么茶杯的批量生产是需要靠工厂的模具成型的。Schema不仅定义了文档结构和使用性能,还可以有扩展插件、实例方法、静态方法、复合索引、文档生命周期钩子。

Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能;
Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 ;
Entity : 由Model创建的实体,他的操作也会影响数据库;

  • 存储数据步骤:定义Schema (骨架) > 创建model(模型)> Entity实例化方法。
var Schema = mongoose.Schema;
//通过Schema创建一个模式NewsSchema  
var studentSchema  = new Schema({      
     name: String,
     age: String
});
  • studentSchema 类型有哪些:
    • String;
    • Number;
    • Date;
    • Buffer;
    • Boolean;
    • Mixed;
    • ObjectId;
    • Array;
//通过模式studentSchema  创建一个模型studentModel 
var studentModel = mongoose.model("students",studentSchema  );

var instance1 = new studentModel (); 
instance1.name="tangyan";
instance1.age="18";
//通过save方法保存
instance1.save(function(err){
    if (err) {
       console.log('保存失败');  
       return;
    }
 });
删除数据;

思路:

  1. 删除数据首先要知道删除哪一条信息,需要知道信息的id;
  2. 把对应id的数据查询出来,执行remove方法;
// 假如我们要删除id=”57e24521a755e1154039a403”的数据;
var id=”57e24521a755e1154039a403”; 
studentQueryModel.findById(id,function(err,doc){
   if(!doc){
      return next(new NotFound("Doc not found"))
   }else{
      doc.remove(function(){
         console.log('删除成功');
      })
   }
});
修改数据;
  • 修改数据的思路:先把对应id的数据查询出来,对需要修改的字段重新赋值,然后执行save方法保存。
// 假如我们要修改id=”57e24521a755e1154039a403”的数据。
var id=”57e24521a755e1154039a403”; 

studentQueryModel.findById(id,function(err,doc){
   //console.log(doc);
   doc.name="xiaotangyan" ;//把name修改为xiaotangyan
   doc.save(function(err){
      if(!err){
          console.log('修改成功');
      }else{
         throw err;
      }
   });
});
查询数据;
  • 下面find第一个参数{}里面为空,表示查询所有的数据:
    docs表示查询的结果集合,可用于渲染ejs模板引擎。
studentQueryModel.find({},function(err,docs){
	console.log(docs);
});

示例:

环境搭建;

  • 前面已经学习过了express,这里我们就用它来创建一个工程。创建之前,先全局安装express-generator;
  1. 在命令行窗口执行:

$ npm install express-generator -g;
在这里插入图片描述

  1. 用node.js和express创建一个新项目:
    cd到一个创建项目的路径,比如D盘根目录 d:
    NoSQL——MongoDB(mongoose);_第1张图片
  • 然后执行命令:

$ express -e newsmanage

在这里插入图片描述

执行完成后如下图:
NoSQL——MongoDB(mongoose);_第2张图片

打开D:\newsmanage 项目已经建立好。
NoSQL——MongoDB(mongoose);_第3张图片

  • 因为项目中需要使用mongoose操作数据库,所以需要安装mongoose包。
  • 在package.json中增加mongoose;
// Package.json 内容:
 {
  "name": "newsmanage",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.15.1",
     "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "ejs": "~2.4.1",
    "express": "~4.13.4",
"morgan": "~1.7.0",
"mongoose": "*",   
    "serve-favicon": "~2.3.0"
  }
}
  1. 执行npm install 安装依赖;
    在这里插入图片描述
    安装完成后:
    NoSQL——MongoDB(mongoose);_第4张图片
    NoSQL——MongoDB(mongoose);_第5张图片
    多出一个文件夹node_modules,里面是依赖的包:

NoSQL——MongoDB(mongoose);_第6张图片

打开项目如下图:
NoSQL——MongoDB(mongoose);_第7张图片

- 至此,环境搭建完成。

参考:

mongoose参考:http://cnodejs.org/topic/504b4924e2b84515770103dd

你可能感兴趣的:(NoSQL——MongoDB(mongoose);)