背景
學習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();
})
});