年初粗略學習了下node,這好幾個月沒玩,突然發現已經忘完了,還是簡單記錄下基本知識,方便再次使用時資料查找。
一、mongoDb安裝
在mac上安裝了brew的情況下,可以直接執行命令
brew install mongodb,在mac系統中往往因為需要寫入權限而要加入sudo
然后等幾分鍾就安裝好了
1、mongoDb啟動
第一個終端窗口輸入 sudo mongod --config /usr/local/etc/mongod.conf
然后在第二個終端窗口輸入 mongo
2、mongoDb關閉
方式一:在第一個窗口直接按 control+C
方式二:在第二個窗口切換數據庫到admin use admin 然后執行 db.shutdownServer({force : true});
3、mongoDb修復
有時mongoDb會因為一些錯誤而無法啟動,這時就要對其進行修復
mongod --repair
二、mongoDb常用語句
1、查詢庫、查詢表
show dbs — 查詢所有的數據庫
show collections — 查詢當前數據庫下的所有數據表
2、建庫和刪庫
use myDbs — 建立一個名為myDbs的數據庫,當這個庫存在時則是切換到這個數據庫中去
use myDbs
db.dropDatabase(); — 這兩句是刪除這個數據庫
3、建表和刪表
表操作都是要先到一個數據庫中去,通過use方法
db.myTable.insert({name:’hf’,age:20}); — 在mongodb中在插入數據時即創建了改表,此時創建的是名為myTable的數據表
db.myTable.drop(); — 刪除myTable這個數據表
4、單表的增刪改
db.myTable.insert({name:’hahaha’,age:12}); — 新增
db.myTable.update({name:’hf’},{$set:{age:25}}) — 修改,此處的操作相當於關系數據庫中的 update myTable set age = 25 where name = ‘hf’
db.myTable.remove({name:’hf'}); — 刪除,此處相當於關系數據庫中的 delete myTable where name = ‘hf’
5、查詢
db.myTable.find(); — 查詢myTable中的所有數據
db.myTable.find().sort({age:1}) — 根據age升續
db.myTable.find().count(); — 查詢
三、mongoose及其基本使用
由於mongodb上手方便,所以經常作為nodeJS建站的數據庫,而mongoose則是NodeJS中操作mongodb一個工具庫。在mongoose中存在這么幾種鏈接、調用方式主要包括Schema、Model、Entity這3種操作類,其中Schema則是以數據類型為形式的實體,它不具備操作數據庫的能力,但是它定義了操作數據表中元素的名稱和類型;而Model則是單個表的實體,通過表的名字以及Schema中標注的類型將一個表進行實例化;那么最后一個Entity可以認為是表中單行的實例對象,可以對單行進行簡單的新增刪改查的操作。
1、建立鏈接和Schema、Model
var mongoose = require(‘mongoose’); /*開始獲取數據庫連接,此處部分為固定寫法, *其中myinfo是要操作數據庫的名稱*/ var con = mongoose.connect(‘mongodb://localhost/myinfo'); /*獲取mongoose全局的Schema對象,方便對多個表進行實例化*/ var sche = mongoose.Schema; /*構建所需表的Schema,此處就構建了一個stu表的文件*/ var stuSchema = new sche({ name:String, age:Number }); /*構建表所需的模型 Model*/ var stuModel = con.model(’Stu’,stuSchema);
2、新增
方式一:
/* 新增,新增操作需要構建一個表單行實例*/ var stuEntity = new stuModel({name:’hf’,age:2}); stuEntity.save(function(err){…});
方式二:
/* 新增,通過Model新增*/ var json = {name:’hf’ , age:1}; stuModel.create(json , function(error){…})
2、修改
var param = {name:’hf’}; var update = {$set:{name:’sfa’,age:26}}; stuModel.update(param , update , function(error){...})
3、刪除
var param = {name:’hf’}; stuModel.remove(param , function(error){...})