美文网首页Node.js我爱编程
Mongoose和Mongodb简单入门

Mongoose和Mongodb简单入门

作者: JellyC | 来源:发表于2017-12-01 15:42 被阅读142次

    一、MongoDB安装启动

    简介
    MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
    在高负载的情况下,添加更多的节点,可以保证服务器性能。
    MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
    MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

    1. 使用yum安装.
    • 添加yum源
    [root@Jelly-Test-32 ~]# vi /etc/yum.repos.d/mongodb-org-3.2.repo 
    [mongodb-org-3.2]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
    
    • 安装MongoDB
    [root@Jelly-Test-32 ~]# yum -y install mongodb-org 
    
    • 启动
    [root@Jelly-Test-32 ~]# service mongod start
    
    2. 使用docker安装(强烈推荐)

    关于docker的安装和使用可以看我的另一篇文章...

    • 拉取镜像
    [root@Jelly-Test-32 ~]# docker pull mongo
    
    • 创建目录mongo,用于数据存放
    [root@Jelly-Test-32 ~]# mkdir -p ~/mongo  ~/mongo/db
    
    • 运行容器,使用docker镜像
    [root@Jelly-Test-32 ~]# docker run -p 27017:27017 -v /root/mongo/db:/data/db -d mongo
    

    命令解释:
    -p 27017:27017 :将容器的27017 端口映射到主机的27017 端口
    -v /root/mongo/db:/data/db :将主机中当前目录下的db挂载到容器的/data/db,作为mongo数据存储目录,不懂的同学可以去学习一下docker相关知识

    到这里我们的MongoDB就安装完成了。

    二、使用mongoose进行增删改查

    下载mongoose就非常简单啦,进入项目目录执行
    [root@Jelly-Test-32 u]# npm install mongoose --save
    在文件内使用mongoose

    var mongoose = require('mongoose'),
        Schema = mongoose.Schema
    mongoose.connect('mongodb://localhost:27017/jelly')//连接MongoDB
    

    Schema —— 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力,仅仅只是数据库模型在程序片段中的一种表现,可以说是数据属性模型(传统意义的表结构),又或着是“集合”的模型骨架。
    Model —— 由Schema构造生成的模型,除了Schema定义的数据库骨架以外,还具有数据库操作的行为,类似于管理数据库属性、行为的类。
    Entity —— 由Model创建的实体,使用save方法保存数据,Model和Entity都有能影响数据库的操作,但Model比Entity更具操作性。

    • 创建Schema,Model,Entity
    //Schema
    var StudentSchema = new Schema({
        num: {type: Number,unique: true}, //唯一不可重复
        name: {type: String},
        age: {type: Number}
    })
    //Model
    var StudentModel = mongoose.model('student',StudentSchema)
    //Entity
    var StudentEntity = new StudentModel({
        num: 1, //唯一不可重复
        name: "jelly",
        age: 22
    })
    
    //命令: [Model.create(doc(s), [callback])]
    //使用save 
    StudentEntity.save(function(error,doc){
      if(error){
         console.log("error :" + error);
      }else{
         console.log(doc);
      }
    });
    
    //使用create
    StudentModel.create(StudentEntity,function(err,docs){})
    //或者
    StudentModel.create({
        num: 1,
        name: "jelly" ,
        age: 22
     },function(err,docs){})
    
    //命令: [Model.remove(conditions, [callback])]
    
    StudentModel.remove({num:1},function(err,docs){})//查找num为1的数据删除
    
    //命令: [Model.update(conditions, doc, [options], [callback])]
    
    StudentModel.update({num:1},{name:"cool"},function(err,docs){
    })//将num为1的名字改为cool
    
    //命令:[Model.find(conditions, [projection], [options], [callback])]
    StudentModel.find({num: 1},{_id:0},function(err,docs){
    })//查询num为1的数据,{_id:0}控制返回内容不包含_id
    
    //查询一条数据
    //StudentModel.findOne({num: 1},{_id:0},function(err,docs){})  
    

    好了,Mongoose和Mongodb简单入门就到这里结束了。如果有兴趣的同学可以自己查阅资料深入研究,文中如果出现错误还望指正。感谢各位看官

    要饭.jpg

    相关文章

      网友评论

      • JellyC:简书的Markdown语法真的好棒啊,上一篇文章的排版不能直视...这一篇好多了

      本文标题:Mongoose和Mongodb简单入门

      本文链接:https://www.haomeiwen.com/subject/wunibxtx.html