1. 程式人生 > >mongo的學習筆記一 xshell操作

mongo的學習筆記一 xshell操作

基本操作
1.切換資料庫  use  資料庫   實際現在沒有建立資料庫,只有在資料庫裡面儲存集合之後才會建立(延遲建立)

2 show dbs  檢視資料庫  

2.建立一個集合(集合相當與表的概念) db.createCollections("集合名稱") (不正常,正常請看第五點) 建立集合後資料庫才會建立   區分大小寫  

3.很多時候如果你按照以上的程式碼形式操作進行會覺得你不正常,因為正常都是直接向裡面直接儲存一個數據

4.db.集合名.find() 查詢集合裡的資料  相當於 select * form 表

5.db.集合.insert() 往集合裡新增資料,資料格式為json 如果集合不存在 自己建立  (正常的操作) 

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()   刪除集合

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() 使用

關係查詢

操作  大於($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全部更新      


17刪除資料 remove()