# MongoDB https://www.youtube.com/watch?v=-bt_y4Loofg https://tw.alphacamp.co/blog/mysql-and-mongodb-comparison 忘了可以進去看 他下面有備忘錄連結 https://www.youtube.com/watch?v=ofme2o29ngU ## 介紹 no-sql 他沒有資料表那樣 原因是當你沒有這個collection會自動創造 他沒有甚麼子查詢 因為他可以嵌套 ## shell(要額外安裝) 你可以看到你輸入**mongo**他會顯示test  因為預設的資料庫就叫test(實際不存在 除非你有建立資料) 當你use某一個就資料庫就不會有這個了 mongo是進入sell可以操作db 但當你要離開要用exit ## show dbs  會顯示 admin config local 三個資料庫 ## 使用資料庫 use 某一個 ex use admin ## 建立資料庫 use 不存在的名稱 但其實沒有真的建立 記得前面說的嗎 就像test一樣 只有當你裡面有資料才會建立 不信你用show dbs看看 ## 刪除資料庫 db.dropDatabase() 這邊很多寫法都跟js很像 因為他底層就是node ## collection 這等於MySql的資料表 ## show collections 查看全部的資料表那種感覺 ## collection ### 放入collection db.users.insertOne({ name:"john" }) 基本上都是db開頭 因為你在進來資料庫了 第二是集合 你可以當成資料表 一樣加s 第三語法你看dropDatabase一樣 這是function 駝峰方式 前面是sql動作 後面是對誰 function參數是 json格式  第一個是true代表有成功 第二是quene 的id ### 當然可以多個array 用 db.users.insertMany ### find() 這等於all抓取全部  後面可以做sort liment之類的 就是collection能做的那種感覺 #### find.sort排序  傳入物件 key是要搜尋的 value 有 1跟 -1(相反) ### where find裡面除了物件就是搜尋 1.-1是排序  ### where 限定返回的欄位  要返回的欄位寫 1 不要返回的欄位寫0 對了如果是id 要加上_喔 #### where複雜查詢 ##### $eq 找相符合的  找相符合的 ##### $ne 找不符合的  ##### $gt 大於  ##### $in whereIn  ##### $nit notWhereIn  ##### $gte 大於等於 ##### $exist  注意null也會返回喔 ##### $lte 小於  ##### $or 或  ##### $expr 比較同一個資料的兩個欄位 `$expr:{$ge:['$debt','$balance'] }` 記得如果是欄位 要加上$字號  ### countDocuments 數量  ### update 跟find一樣 但要改變的結果要加上$set  #### $inc 流水號那個 自動增加數字  #### $rename 重新命名  #### $unset 刪除欄位  #### $push 如果屬性是array可以增加  #### $pull 跟 push相反 是把東西拉出來 等於刪掉  ### updateMany 大量更新  ### deleteOne  ### replaceOne 替換一個  注意這替換是整個object喔 基本用不到 ###### tags: `NoSql`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up