koa(擴展知識, 建議學習)
- koa是express超集(進階版)
前后端分離和耦合概念介紹
- 面向過程 -》 面向對象 --》 面向服務
數據庫 Node.js mongodb(bson json的超集)
分類:
關系型數據庫: MySql
非關系型數據庫: MongoDB
MongoDB安裝
- 環境變量設置
- 系統服務添加有問題
-
安裝
系統不太支持高版本、 降版本 3.2 3.4寫在mongodb時候, 記得刪除之前創建好的文件夾
- 每次啟動
最好先
net start MongoDB
在:
mongo
問題?MongodDB
-
MongoDB的存儲數據的形式bson
?數據庫功能是用來存儲數據的。
?數據庫分為關系系數據庫和非關系型數據庫(nosql)
?關系型數據庫是由表和表之間的關系組成的,nosql是由集合組成的,集合下面是很多的文檔。
?非關系型數據庫文件存儲格式為BSON(一種JSON的擴展)。MongoDB操作命令
- MongoDB連接地址: mongodb://127.0.0.1:27017
- use db_name
舉例:
創建: 我們的數據庫中沒有 你要切換的數據庫, 那么即為創建
切換: 數據庫已經存在, 我們從一個數據庫切換到另一個數據庫 - show dbs
將我們本地的所有數據庫列出來 - db/db.getName()
查看當前使用的數據庫 -
MongoDB
數據庫 -》 集合 -》 文檔
針對數據庫(database)的操作- help
- use db_name
- db||db.getName()
- db.states()
- db.dropDatabase()
- show dbs
- db.versions()
- db.getMongo()
針對集合(collections)的操作
(1)創建一個集合
db.createCollection("collName", {size: 20, capped: true, max: 100});
db.collName.isCapped(); //判斷集合是否為定容量
(2)得到指定名稱的集合
db.getCollection("account");
(3)得到當前db的所有集合
db.getCollectionNames();
(4)顯示當前db所有集合的狀態
db.printCollectionStats()針對文檔(docuemnt)的操作
- 添加
- db.coll_name.save({}) 推薦
- db.coll_name.insertOne({})
- db.coll_name.insert({})
-
查詢
db.coll_name.find(arg1,arg2) 所有的
參數解釋:
arg1 表示的是匹配條件
arg2 表示將來輸出的內容匹配 0 表示不要, 1表示要舉例:
db.movies.find({year:'1993'},{_id:0,title:1})升序
舉例:
db.movies.find({year:'1993'},{_id:0,title:1}).sort({year:1})降序
舉例
db.movies.find({year:'1993'},{_id:0,title:1}).sort({year:-1})截取 某條以前 limit
db.movies.find({year:'1993'},{_id:0,title:1}).limit(5)
截取 某條以后 skip優先級:
sort>skip>limit$or表示或者, 可以匹配多個條件
db.teachers.find({$or:[{age:10},{age:40}]})findOne() 第一條數據
db.teachers.findOne()
count() 計數
舉例:
db.movies.find({year: {$gt:"1993"}},{_id:0,title:1,year:1}).count() //16 - 刪除
db.coll_name.remove({}) -
修改
db.coll_name.update(arg1,arg2,arg3,arg4)
參數解釋:- arg1: 匹配條件
- arg2: 修改的具體內容
- arg3: false / true 匹配幾條 false 一條 true 多條
-
arg4: false / true 修改幾條 false 一條 true 多條
$set 直接設置
db.teachers.update({age:120},{$inc: {age: 80}},false,true)
$inc 在當前基礎上增加多少
db.teachers.update({age:120},{$inc: {age: 80}},false,true)注意:db.students.update({name:'lwj'},{$inc;{age:10}},true,false)//只能修改第一條,一句話來說,雖然匹配多條但修改一條就是一條
db.students.update({name:'lwj'},{$inc:{age:10}},true)//同上
db.students.update({name:'lwj'},{$inc:{age:10}},false)//同上
db.students.update({name:'lwj'},{$inc:{age:10}},false,true)//這個自然是全都修改了
作業:
- 筆記整理
- 練習 (將所有的命令走一遍)
- 預習mongoose
轉載于:https://blog.51cto.com/12699853/2376902