mongodb 學習筆記(二)

2021-08-20 05:19:26 字數 4132 閱讀 4260

集合物件:

db.collectionname

獲取集合物件:

db.getcollection('collection_name')

e.g.

db.getcollection("class0").insert()

select ... from tablename where ...

db.collectionname.find()—>

select * from tablename

find(query, field)

返回:返回所有查詢到的內容

field 引數: 選擇要展示的域,傳一組鍵值對

鍵表示網域名稱

值表示是否顯示該域 0表示不顯示 1表示顯示

e.g.

db.class0.find({},)

query引數:以鍵值對的形式給出查詢條件

查詢年齡 17

e.g.db.class0.find(,)

* 如果不寫第乙個引數則表示查詢所有內容

findone()

功能引數和find()完全相同,只是只返回第一條查詢到的文件

e.g.db.class0.findone()

query的更多用法

操作符:使用$符號註明的乙個特殊字串,表示一定的含義

比較操作符

$eq 等於

e.g. 

db.class0.find(},)

篩選年齡等於17的

===>等同於db.class0.find(,)

* mongo中字串也可以比較大小

$lt 表示 小於

$lte 小於等於 <=

$gt 大於 >

$gte 大於等於 >=

$ne 不等於 !=

db.class0.find(,})

* 如果乙個文件沒有這個age域則顯示為不等於

$in 包含 

$nin 不包含 

邏輯操作符

$and 邏輯與

$or 邏輯或

$not 邏輯非

\nor 既不也不

陣列查詢

檢視陣列中包含某一項的

db.class1.find(,)

$all

查詢乙個陣列中同時包含多項的文件

*e.g.

db.class1.find(},)

查詢hobby中既有gm,又有yx的文件

$size

查詢陣列元素中個數為指定個數的文件

*e.g.

db.class1.find(},)

查詢hobby陣列中包含4項的文件

陣列切片顯示

$slice

對陣列切片顯示

*e.g.

db.class1.find(},})

顯示查詢到的陣列的前兩項

db.class1.find(},})

跳過第一項,顯示後面兩項

}

其他查詢方法

$exists

判斷乙個域是否存在

*e.g.

db.class1.find(},})

查詢class1中包含hobby域的文件

()$mod

做除數查詢

*e.g.

db.class1.find(},)

age能被3整除的

db.class1.find(},)

age能被2除餘1的

,x代表除數,y代表餘數)

$type

查詢指定資料型別的文件

db.class1.find(},)進一步的資訊篩選

distinct()

功能:檢視乙個集合中某個域值的覆蓋範圍

*e.g.

db.class1.distinct('age')

檢視class1中age域的值都有哪些(所包含的文件)

pretty()

將查詢結果格式化顯示

*e.g.

db.class1.find().pretty()

limit(n)

功能:查詢結果顯示前n條

(限制顯示數量)

skip(n)

功能:顯示時跳過前n條

count()

功能:對查詢結果級數統計

*e.g.

統計***為m的文件數量

db.class1.find(,).count()

sort()

功能:對查詢結果排序

1 表示公升序排列,-1 表示降序排列

*e.g.

db.class1.find(},).sort()

對查詢結果將年齡小於50的文件參照age進行公升序排列

復合排序

當第一排序項相同的時候,按照第二排序項排序

db.class1.find(},).sort(,)

(用age進行公升序排列,再按照name進行降序排列)

函式的連續使用

獲取集合中年齡最小的三個文件

db.class1.find({},).sort().limit(3)

db.collectionname.remove(query, justone)

功能:刪除指定的文件

引數:

query:篩選要刪除的文件,類似where子句,用法同 查詢操作中的用法

justone:布林值,預設為 false 表示刪除所有篩選資料,如果賦值為true 則表示只刪除第一條符合的文件

e.g.刪除第乙個符合條件的文件

db.class1.remove(},}]},true)

刪除集合中所有的文件

db.collectionname.remove({})

建立乙個資料庫 名字grade

資料庫中建立乙個集合名字class

集合中插入若干資料 文件格式如下

hobby:

draw sing dance basketball football pingpong computer

查詢練習

檢視班級所有人資訊

檢視班級中年齡為8歲的學生資訊

檢視年齡大於10歲的學生的資訊

檢視年齡在4–8歲之間的學生資訊

找到年齡為6歲且為男生的學生

找到年齡小於7歲或者大於10歲的學生

找到年齡是8歲或者11歲的學生

找到興趣愛好有兩項的學生

找到興趣愛好有draw的學生

找到既喜歡畫畫又喜歡跳舞的學生

統計愛好有三項的學生人數

找出本班年齡第二大的學生

檢視學生的興趣範圍

將學生按年齡排序找到年齡最大的三個

刪除所有 年紀大於12或者小於4歲的學生

作業: 複習 資料的查詢 和刪除操作 mongo練習

MongoDB學習筆記

從接觸計算機學習開始,我所使用的資料庫就是mysql,oracle這樣的關係型資料庫。早就聽說了nosql的概念,也對其有代表性的非關係型資料庫mongodb有所耳聞,一直想學習學習這項從未使用過的技術,可是由於種種原因,又沒有時間來學習學習這項新的概念。也就是這麼巧,目前的工作中,使用到的就是mo...

mongodb學習筆記

匯入json檔案命令 mongoimport db test collection user file d new.json mongodb查詢某一條件的資料插入到集合中 var result db.csmdr.find while result.hasnext db.新建表名.insert res...

MongoDB 學習筆記

import pymongo client pymongo.mongoclient localhost 27017 利用pymongo的mongoclinet 方法構造clinet xiaoshuo client xiaoshuo 利用clinet物件建立xiaoshuo表 sheet 1 xiao...