Mongodb學習筆記 2

2021-09-28 14:52:01 字數 4927 閱讀 5475

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...