MongoDB學習筆記

背景

學習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();
        })
    });
相關文章
相關標籤/搜索