mongo的學習筆記一 xshell操作
阿新 • • 發佈:2018-11-21
基本操作
1.切換資料庫 use 資料庫 實際現在沒有建立資料庫,只有在資料庫裡面儲存集合之後才會建立(延遲建立)
3.很多時候如果你按照以上的程式碼形式操作進行會覺得你不正常,因為正常都是直接向裡面直接儲存一個數據
4.db.集合名.find() 查詢集合裡的資料 相當於 select * form 表
6.show collections 檢視資料庫裡的集合
7.db.集合名稱。find(若干條件) 檢視**表,**集合資料的語法
8.集合就相當於表的概念,表的結構一旦定義必須按照定義的要求進行內容的編寫,但是mongo不一樣,他可以所以隨意擴充,集合裡的內容可以隨意去定義,完全不用考慮其他結構,mongo裡沒有檢視集合結構的操作。
9. db.集合名.fingOne() 檢視單獨的一個文旦資料
10.db.集合名.remove({"id":"id值"}) 刪除
11.db.集合名.update({"id":"id值"},資料) 資料結構須一致
12.db.集合名稱.drop() 刪除集合
操作 大於($gt),小於($lt),大於等於($gte)小於等於 ($lte) 不等於($ne)
範例年齡大於19歲的學生
3.db.students.find({"age":{"$gt":19}}).pretty() 語法
邏輯運算 (於($and)的型別 或($or)的型別 非($not)的型別)
範例 查詢年齡在19-20歲的學生資訊
4.db.students.find({"age":{"$gte":19,"$lte":20}}).pretty() 語法
範例 查詢年齡不是19c歲的學生資訊
5.db.students.find({"age":{"$ne":19}}).pretty() 語法
範例(或($or)的型別) 查詢年齡大於19歲,或者成績大於90分的學生
6.db.students.find({"$or":[{"age":{"#gt":19}},{"score":{"$gt":90}}]}).pretty() 語法
範例 (或的求反操作)
db.students.find({"$nor":[{"age":{"#gt":19}},{"score":{"$gt":90}}]}).pretty() 語法
求模 使用$mod 語法 {"$mod":{數字,餘數}}
範圍查詢 只要是資料庫 就存在有 $in(在範圍中) $nin(不在範圍中)
8. db.students.find({"name":{"$in":["張三","李四","王五"]}}).pretty() 語法
陣列查詢 (mongo裡面是支援陣列儲存的,一旦支援陣列儲存,就需要針對陣列的資料進行匹配)
可以使用這幾個運算子:($all,$size,$slice,$elemMatch)
9.db.students.find({"course":{"$all":["語文","數學"]}}).pretty() 語法 {"name":"張三","course":["語文","數學","政治"]}
也可以定義陣列索引查詢
db.students.find({"course.1":"數學"}).pretty() 語法
查詢只參加兩門課程的學生 使用$size 來進行控制數量
db.students.find({"course":{"$size":2}}).pretty() 語法
10.巢狀集合運算$elemMatch
11.判斷某個欄位時候存在 $exists 設定為true為存在 false為不存在
12.條件過濾 $where
正則查詢 (模糊查詢)
13.基礎語法{key:正則標記}
完整語法{key:{"$regex":正則標記,"$options",選項}}
|- 對於options主要設定正則資訊查詢的標記:
|-"i":忽略字母大小寫
|-"m"多行查詢
|-"x"空白字串處了被轉義的活在字元類中意外的完全被忽略
|-"s"匹配所有的字元,包括換行內容
|-需要注意的是,如果 直接使用(Javascript)那麼只能夠使用i和m 而x和s必須使用$regex
db.students.find({"name":/谷/}).pretty() 語法
14.查詢排序 $sort() 1是升序 -1是降序 自然排序 $natural
15.資料分頁顯示 $skip(表示跨過多少資料) $limit(取出多少資料)
16.資料更新操作 $save() $update()
|-upsert 如果要更新的資料不存在,則增加一條新的(true為增加,false為不增加)
|-multi 表示是否只更新第一行記錄,如果是false只更新第一天,如果是true全部更新
1.切換資料庫 use 資料庫 實際現在沒有建立資料庫,只有在資料庫裡面儲存集合之後才會建立(延遲建立)
2 show dbs 檢視資料庫
2.建立一個集合(集合相當與表的概念) db.createCollections("集合名稱") (不正常,正常請看第五點) 建立集合後資料庫才會建立 區分大小寫3.很多時候如果你按照以上的程式碼形式操作進行會覺得你不正常,因為正常都是直接向裡面直接儲存一個數據
4.db.集合名.find() 查詢集合裡的資料 相當於 select * form 表
5.db.集合.insert() 往集合裡新增資料,資料格式為json 如果集合不存在 自己建立 (正常的操作)
7.db.集合名稱。find(若干條件) 檢視**表,**集合資料的語法
8.集合就相當於表的概念,表的結構一旦定義必須按照定義的要求進行內容的編寫,但是mongo不一樣,他可以所以隨意擴充,集合裡的內容可以隨意去定義,完全不用考慮其他結構,mongo裡沒有檢視集合結構的操作。
9. db.集合名.fingOne() 檢視單獨的一個文旦資料
10.db.集合名.remove({"id":"id值"}) 刪除
11.db.集合名.update({"id":"id值"},資料) 資料結構須一致
12.db.集合名稱.drop() 刪除集合
13.db.dropDatabase() 刪除資料庫(刪除當前所在的資料庫)
新增
1.db.集合.insert([{},{}]) 儲存多個數據使用陣列 []
2.for(var x=0;x<10000;x++)
{
db.集合.insert({資料});
} 儲存10000條資料 儲存資料很多時,列表不會全部列出 只會列出部分資料
查詢 (Mongo查詢支援很到位,包含邏輯判斷,關係運算,陣列運算,正則運算)
1.db.集合.find({查詢條件},{"_id":0(顯示欄位,0為不顯示,1為顯示)}) 對於這種查詢為投影查詢意義不大,我們可以使用pretty() 函式進行,進行漂亮的顯示
2.db.集合.find({查詢條件},{"_id":0(顯示欄位,0為不顯示,1為顯示)}).pretty() 使用
關係查詢
範例年齡大於19歲的學生
3.db.students.find({"age":{"$gt":19}}).pretty() 語法
邏輯運算 (於($and)的型別 或($or)的型別 非($not)的型別)
範例 查詢年齡在19-20歲的學生資訊
4.db.students.find({"age":{"$gte":19,"$lte":20}}).pretty() 語法
範例 查詢年齡不是19c歲的學生資訊
5.db.students.find({"age":{"$ne":19}}).pretty() 語法
範例(或($or)的型別) 查詢年齡大於19歲,或者成績大於90分的學生
6.db.students.find({"$or":[{"age":{"#gt":19}},{"score":{"$gt":90}}]}).pretty() 語法
範例 (或的求反操作)
db.students.find({"$nor":[{"age":{"#gt":19}},{"score":{"$gt":90}}]}).pretty() 語法
求模 使用$mod 語法 {"$mod":{數字,餘數}}
範圍查詢 只要是資料庫 就存在有 $in(在範圍中) $nin(不在範圍中)
8. db.students.find({"name":{"$in":["張三","李四","王五"]}}).pretty() 語法
陣列查詢 (mongo裡面是支援陣列儲存的,一旦支援陣列儲存,就需要針對陣列的資料進行匹配)
可以使用這幾個運算子:($all,$size,$slice,$elemMatch)
9.db.students.find({"course":{"$all":["語文","數學"]}}).pretty() 語法 {"name":"張三","course":["語文","數學","政治"]}
也可以定義陣列索引查詢
db.students.find({"course.1":"數學"}).pretty() 語法
查詢只參加兩門課程的學生 使用$size 來進行控制數量
db.students.find({"course":{"$size":2}}).pretty() 語法
10.巢狀集合運算$elemMatch
11.判斷某個欄位時候存在 $exists 設定為true為存在 false為不存在
12.條件過濾 $where
正則查詢 (模糊查詢)
13.基礎語法{key:正則標記}
完整語法{key:{"$regex":正則標記,"$options",選項}}
|- 對於options主要設定正則資訊查詢的標記:
|-"i":忽略字母大小寫
|-"m"多行查詢
|-"x"空白字串處了被轉義的活在字元類中意外的完全被忽略
|-"s"匹配所有的字元,包括換行內容
|-需要注意的是,如果 直接使用(Javascript)那麼只能夠使用i和m 而x和s必須使用$regex
db.students.find({"name":/谷/}).pretty() 語法
14.查詢排序 $sort() 1是升序 -1是降序 自然排序 $natural
15.資料分頁顯示 $skip(表示跨過多少資料) $limit(取出多少資料)
16.資料更新操作 $save() $update()
|-upsert 如果要更新的資料不存在,則增加一條新的(true為增加,false為不增加)
|-multi 表示是否只更新第一行記錄,如果是false只更新第一天,如果是true全部更新
17刪除資料 remove()