MongoDB学习笔记

背景

学习MongoDB,并做笔记整理,以便于用到时查看。

MogoDB

  • NoSQL Database(JS)
  • 使用方便,想存就存,相取就取
  • 是MEAN中的M(数据)

安装

https://www.mongodb.com/downl... 选择相应系统安装包

安装mongoose

  • 创建一个文件夹,并npm init --yes,创建package.js
  • npm install mongoose --save //安装mongoose模块
  • 创建test文件夹,并在其中创建connection.js文件

connection.js(连接数据库)

  • const mongoose=require('mongoose')//引入mogonese
  • mongoose.connect('mongodb://localhost/test')//连接MongoDB
  • mongoose.connection.once('open',function () { console.log('数据库连接成功')
    }).on('error',function (error) { console.log('连接失败:',error);
    });//测试数据库是否连接成功
  • 在项目根目录中创建models文件夹,并在其中创建mariochar.js

mariochar.js

  • const mongoose=require('mongoose');//引入mongoose
  • const Schema=mongoose.Schema;//获取规范类
  • const MarioCharSchema=new Schema({ name:String, weight:Number
    });//规范数据格式
  • const MarioChar=mongoose.model('Mario',MarioCharSchema);//创建数据模型

Mocha(测试mongoose的框架)

  • 在test目录下创建demo_test.js文件
  • npm install mocha --save //安装mocha模块
  • const mocha=require('mocha');//导入模块
  • const assert=require('assert');//引入断言
  • describe('demo test',function () { //创建需要测试的任务
    it('测试两个数的值是否相等',function () { //使用断言 assert(2+3===5); })
    });//测试时,对当前测试的一个描述

存储数据

  • 将demo_test.js重命名为saving_test.js
  • const MarioChar=require('../models/mariochar');
  • const mocha=require('mocha');
  • const assert=require('assert');
  • describe('存储数据',function () { //创建需要测试的任务 it('saving
    data',function () { //准备需要存储的数据 var char=new MarioChar({ name:'Mario'
    }) //存储数据 char.save().then(function (result) {
    console.log(result.name); assert(result.isNew===false); }) }) });

robomongo(mogodb可视化工具)

查询数据

  • 在test目录下创建finding_test文件
  • const MarioChar=require('../models/mariochar');
  • const mocha=require('mocha');
  • const assert=require('assert');
  • describe('查找数据',function () { //创建需要测试的任务 it('finding
    data',function (done) {
    MarioChar.findOne({name:'Mario'}).then(function (result) {
    console.log(result.name); done(); }) }) });

删除数据

it('deleating data from db', function () { 
MarioChar.findOneAndRemove({name:'Mario'})
.then(function (result) { assert(result===null); })
 });

更新数据

it('更新语句中的操作语句', function (done) {
        MarioChar.findOneAndUpdate({name:'Mario'},{$inc:{weight:1}}).then(function (result) {
            console.log(result.weight);
            done();
        })
    });

相关推荐