Python全棧MongoDB資料庫(資料的查詢)
非關係型資料庫和關係型資料庫的區別?
不是以關係模型構建的,結構自由
非關係型資料庫不保證資料一致性
非關係型資料庫可以在處理高併發和海量資料時彌補關聯式資料庫的不足
非關係型資料庫在技術上沒有關係型資料庫技術成熟
查詢操作:
db.集合名.find(查詢條件,域)
查詢條件:
鍵值對的形式給出要展示的文件
域:
以鍵值對對的形式給出要展示或不展示的域
0為值不顯示該域 1為值顯示該域
如果使用0設定某些域不顯示預設其他域顯示如果使用1設定某些域顯示預設其他域不顯示*_id 只有設定為0才不顯示否則預設顯示除_id以外,其他域必須同時設定0或1
db.集合名.findOne(查詢條件,域)
查詢複合條件的第一條文件
查詢條件(query):
操作符:
使用$註明的一特殊意義的字串,表達某個特定含義
比如:$gt表示大於
語法:
db.集合名.find({name:{$gt:”tom”}}, {_id:0})
比較操作符:
$eq 等於
$lt 小於(字串也可以比較大小)
$lte 小於等於
$gt 大於
$gte 大於等於
$ne 不等於
$in 在什麼裡(in)
$nin 不在什麼裡(not in)
邏輯操作符:
$and 與
query內如果多個條件用逗號隔開預設就是and關係
$or 或
$not 非
$nor 既不也不
陣列:
使用中括號[]將一定的資料組織為一種資料結構
陣列中的資料型別可以不同 是有序的
db.class2.find({score:{$gt:90}}, {_id:0})
$size
通過陣列中個數查詢
$all
查詢陣列中包含多項的
$slice
取陣列中部分顯示,在域(field)中宣告
其他query查詢:
$exists
判斷一個域是否存在
$mod
餘數查詢
$type
資料型別查詢
distinct()
db.class2.distinct(“score”)
檢視集合內某個域的取值範圍
pretty()
將查詢結果格式化顯示
limit(n)
顯示查詢結果的前n條結果
skip(2)
跳過前條顯示後面的結果
count()
計數統計
sort({filed:1/-1})
排序
引數:鍵代表那個域,1表示升序, -1表示降序
複合排序: 當第一排序項相同的時候按照第二排序項排序,以此類推
函式的連續呼叫
當一個函式的返回結果仍然是文件集合的時候可以連續呼叫函式
文件的刪除操作
db.集合名.remove(query,justOne)
remove(query,justOne)
功能 : 刪除文件
引數 : query
篩選要刪除的文件,相當於where
用法同 查詢
justOne
布林值
預設為False 表示刪除所有複合條件的文件
如果設定為true 則表示只刪除第一條複合條件文件
修改操作:
db.集合名.update(query, update,upert,multi)
引數:
query:
篩選要查詢要修改的文件
update:
將篩選的文件修改為什麼內容
需要配合修改操作符
upsert:
bool值 預設false 如果query的文件不存在則不進行任何操作
設定為true 如果query和文件不存在 就根據query和update插入新文件
multi:
bool值 預設false 如果query文件有多條則只修改第一條
設定為true 則修改所有符合條件的文件、
綜合示例:
1. 建立資料庫 名字 grade
use grade
2. 資料庫中建立集合 名字 class
3. 集合中插入若干文件格式如下
{name:`zhang`,age:10,sex:`m`,hobby:[`a`,`b`...]}
年齡在4-13之間
hobby幾項都可以,可選項: draw sing dance basketball football pingpong running computer
db.class.insert({name:`zhang`,age:10,sex:`m`,hobby:[`a`,`b`...]})
4. 查詢練習
檢視班級所人資訊
db.class.find()
檢視年齡大於10歲的學生資訊
db.class.find({age:{$gt:10}})
檢視年齡 8-11 歲之間的學生資訊
db.class.find({age:{$gt:8,$lt:11}})
找到年齡9歲且為男生的學員
db.class.find({age:9,sex:`m`})
找到年齡小於7歲或者大於11歲的學生
db.class.find({$or:[{age:{$gt:11}},{age:{$lt:7}}]})
找到年齡8歲或者11歲的學生
db.class.find({age:{$in:[8,11]}})
找到有兩項興趣愛好的學生
db.class.find({hobby:{$size:2}})
找到喜歡computer的學生
db.class.find({hobby:"computer"})
找到既喜歡畫畫,又喜歡跳舞的學生
db.class.find({hobby:{$all:[`draw`,`dance`]}})
統計興趣愛好有3項的學生人數
db.class.find({hobby:{$size:3}}).count()
找到本班年齡第二大的學生
db.class.find({}).sort({age:-1}).skip(1).limit(1)
檢視學生學生興趣愛好的範圍
db.class.distinct(`hobby`)
找到年齡最小的三個同學
db.class.find({}).sort({age:1}).limit(3)
刪除雖有年齡小於6歲或者大於12歲的學員
db.class.remove({$or:[{age:{$lt:6}},{age:{$gt:12}}]})
相關文章
- Python全棧 MongoDB 資料庫(資料的查詢)Python全棧MongoDB資料庫
- MongoDB資料庫中查詢資料(下)MongoDB資料庫
- 在MongoDB資料庫中查詢資料(上)MongoDB資料庫
- python資料庫-mongoDB的高階查詢操作(55)Python資料庫MongoDB
- MongoDB之資料查詢(資料排序)MongoDB排序
- 資料庫資料的查詢----連線查詢資料庫
- 資料庫 - 資料查詢資料庫
- MongoDB之資料查詢操作MongoDB
- Python全棧MongoDB資料庫(聚合、二進位制、GridFS、pymongo模組)Python全棧MongoDB資料庫
- 全棧 – 12 資料庫 用Python操作MySQL全棧資料庫PythonMySql
- Python全棧開發之—redis資料庫Python全棧Redis資料庫
- 全棧 - 12 資料庫 用Python操作MySQL全棧資料庫PythonMySql
- 資料庫全表查詢之-分頁查詢優化資料庫優化
- 資料庫查詢資料庫
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- MongoDB之資料查詢(陣列)MongoDB陣列
- Prometheus時序資料庫-資料的查詢Prometheus資料庫
- 求助:資料庫查詢資料庫
- ThinkPHP 資料庫查詢PHP資料庫
- 查詢資料庫大小資料庫
- 資料庫排序查詢資料庫排序
- Jemter查詢資料庫資料庫
- MongoDB之資料查詢(巢狀集合)MongoDB巢狀
- python操作mongodb資料庫PythonMongoDB資料庫
- 查詢資料庫的資料量的大小資料庫
- VueCli3.x全棧專案 - NodeJs連線MongoDB資料庫Vue全棧NodeJSMongoDB資料庫
- 資料庫查詢慢的原因資料庫
- 查詢資料庫中表的資訊資料庫
- 資料庫高階查詢之子查詢資料庫
- SSH:hiberate實現資料的查詢(單查詢和全查詢)
- 資料庫查詢語句資料庫
- 資料庫查詢優化資料庫優化
- mysql資料庫多表查詢MySql資料庫
- mysql資料庫容量查詢MySql資料庫
- 資料庫查詢步驟資料庫
- 資料庫查詢配置值資料庫
- MongoDB之資料查詢(分頁顯示)MongoDB
- MongoDB之資料查詢(正規表示式)MongoDB