mongodb的查詢操作
查詢的用法示例
各種操作符
array型別
其他query查詢
mongodb的其他函式
db.collection.find(query,field)
引數query:查詢條件,相當於where子句
field:選擇要展示的域,不寫則展示所有內容
返回值:
返回查詢到的文件
引數query:以鍵值對的形式給出查詢條件
示例:查詢姓名為lucy的
di.class.find()
示例:查詢age為18的學生的id
db.collection.find(,'_id')
引數field:表示要展示的域或者不展示的域,網域名稱為鍵,0為不顯示,1為顯示
示例:查詢所有學生,不展示id
db.collection.find({},)
注意:如果設定了某些域為0,那麼沒有設定的域預設為1
如果設定某些1,其他域為0
_id只有設定為0時才不顯示,
_id除了_id,其他域要麼只能設定0,要麼只能設定1
findone(query,field)
功能:返回一條資料
引數同find
使用$號註明的乙個特殊意義字串。表達某個特殊含義
$eq 等於
$ne 不等於
$gt 大於
$gte 大於等於
$lt 小於
$lte 小於等於
字串也可以比較大小,大小按ascii編碼排序
$in 使用:}
說明:查詢年齡為1或者20的
$nin 跟in是相反的
邏輯與:$and
使用:使用逗號隔開就是邏輯與
db.collection.find(})
邏輯或: $or
使用:db.collection.find(},]})
邏輯非:$not
示例:查詢age不為18的使用者的兩種方法
db.collection.find(}})
db.collection.find(})
$ne 操作符 不等於
具體操作看上個例子的第二種方法
$nor:既不。。。也不。。。 not a and not b
查詢age等於17的使用者
db.collection.find(})
查詢age大於等於18的使用者
db.collection.find(})
查詢age為17且男性的使用者
db.collection.find(,]})
查詢age範圍在18-40的使用者或者名字為張三的男性
db.collection.find($or:[,}},])
查詢年齡不大於30,並且名字叫阿寶的使用者或者是性別為女的使用者
db.collection.find(,},]})
查詢年齡小於30或者大於33,並且性別為女的
db.collection.find(},}]},]})
db.collection.find(},}],},)
表達:使用中括號將一定的資料組織為一種資料結構
說明;1陣列中的資料型別可以不同
2資料是有序的
利用陣列插入資料
db.newclass.insert([,
])
db.collection.find()
說明:雖然和普通查詢語句一樣,但是score是以陣列形式存在的,因此,score只要含有88,就會被查詢
db.collection.find(})
說明:只要有一項大於88,就會被查詢
示例1:
db.collection.find(})
表示查詢陣列中只有兩項資料的使用者被查詢哦
查詢score中分數必須包含88和90的使用者(還可以有其他資料)
db.collection.find(})
取陣列的部分進行顯示,在field中宣告
示例:取陣列的前兩項進行搜尋
db.collection.find({},})
示例2:跳過第一項,顯示後面兩項
db.collection.find({},})
查詢有***域的文件
db.collection.find(},)
查詢單數年齡的文件 [2,1]表示除以2餘1的
db.collection.find(})
查詢age型別不是double型別的文件
db.newclass.find(}})
注意:型別和別名在官網檢視
功能:檢視某個域的取值範圍
示例:檢視集合的年齡的取值範圍,如果age為字串型別,會被單獨列舉出來
db.newclass.distinct("age")
示例
db.collection.find().pretty()
limit(n)
顯示查詢結果的前n條
skip(n)
跳過前n條,顯示後面的內容
示例:跳過前三條
db.collection.find().skip(3)
查詢一共有多少條資料
db.collection.find().count()
根據年齡大小公升序排序
db.collection.find().sort()
引數:field:域
1:公升序
-1:降序
復合排序:當排序域的值相同時,按照第二排序項排序
案例:如果結果集一段資料年齡相等,按照姓名排序
db.collection.find().sort()
db.collection.find().sort().limit(3)
db.collection.remove(query,justone)
功能:刪除文件
引數 query:篩選資料
jistone:預設為false,表示刪除所有符合條件的文件,如果設定為true則只刪除第一條查詢到的資料
刪除年齡域不是數字的文件
db.collection.remove(}})
刪除有***域的文件
db.collection.remove(})
刪除第乙個age為17的文件
db.collection.remove(,)
刪除集合所有的內容
db.collection.remove({})
1建立資料庫 名字grade
2資料庫中建立集合名字class
3集合中插入若干文件格式如下
年齡插入4-13隨便選
hobby可選項draw,,sing,dance,basketball,football,pingpong,running,computer
4查詢聯絡
檢視班級所有人資訊
db.class.find()
檢視年齡大於10歲的學生資訊
db.class.find(},)
檢視年齡8-11歲的學生資訊
db.class.find(},}]},)
db.class.find(,age:})
找到年齡9歲,且為男生的學生資訊
db.class.find()
找到年齡小於7歲,或者大於11歲的學生
db.class.find(,age:}]})
找到年齡8歲或者11歲的學生
db.class.find(})
找到有2項興趣愛好的學生
db.class.find(})
找到喜歡computer的學生
db.class.find()
找到即喜歡畫畫又喜歡跳舞的學生
db.class.find(})
5 統計興趣愛好有3項的學生人數
db.class.find(}).count()
找到本班年齡第二大的學生
db.class.find().sort().skip(1).limit(1)
檢視學生興趣愛好的範圍
db.distinct('hobby')
找到年齡最小的三個同學
db.class.find().sort().limit(3)
刪除所有年齡小魚6歲或者大於12歲的學生
db.class.remove(},}]})
db.collection.update(query,update,upsert,multi)
引數:query:篩選要修改的文件,相當於where
update:將篩選的文件修改什麼內容,相當於set,需要配合修改操作符$set一起使用
upsert:是個布林值,預設false,表示如果query的文件不存在則不進行任何操作。如果設定為true,則
如果query的文件不存在,就插入set的資料
multi:布林值,預設false表示一次只更新一條資料,設定為true的話,則修改所有文件
示例:
db.collection.update(,})
db.collection.update(,},)
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...