MongoDB数据库(3.mongodb数据库的高级查询)
1. 按照條件查詢所有數據:? db.集合名稱.find(條件)
? ? ? (1)? 例:? db.test_01.find({age=20})? ? ? ? ? ?查找test_01集合中的age等于20 的數據
? ? ? ? (2)? ?有多個條件的時候直接給里面添加數據就行??
? ? ? ? ? ??db.test_01.find({home:"北京",age=20})? # 家在北京且年齡為20的學生數據
? ? ? ?(3)? ?db.集合名稱.find(條件).pretty()? ? # 讓查詢的結果美化輸出
2.按照條件查詢一條數據? ?:? ?db.集合名稱.findOne(條件)
3. 投影:? ? 在查詢到的返回結果中,只選擇必要的字段
? ? ? ?db.集合名稱.find({},{字段名稱:1})
? ? ? ? 例如:? ?db.stu.find({age:$gt:20},{name:1,age=1})? ? #查詢年齡大于20的,且結果只有姓名和年齡
? ? ? ?想要顯示某個結果,給后面的大括號里面直接添加? 名字:1? ?例如:? name:1 把姓名顯示出來
? ? ? ? 查詢到的數據會默認顯示出_id ,同理讓_id不顯示的,把_id設置為0
? ? ? ?
4. 排序? ?查詢
? ? ?
? ? 升序查詢:??例:db.stu.find().sort({age:1})? ? ?# 按照age進行排序? 1? 為升序? (從小到大)
? ? 降序查詢: 例:? db.stu.find().sort({age:-1})? ? # 按照age進行排序? -1為降序 (從大到小)
? ? ? 如果按照排序的時候有相同的字段,就可以再根據后面的字段進行類似的二次排序
5. 去重? ? ? distinct()
? ??
?
1.高級查詢?
? ? ?(1) 運用比較運算符
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ?例如:? ?db.stu.find({age:{$lte:20}})? ? #? 查找db集合中年齡小于等于20的所有數據
? ? (2)運用范圍運算符
? ? ? ?使用"$in", "$nin" 判斷是否在某個范圍之內
? ? ?例如:db.stu.find({age:{$in:[20,25,30]}})? ? ? #?查詢年齡等于 20,25,30的學生數據
? ? ?(3)運用邏輯運算符
? ? ? ? ? ? ? ? ? ? ??
?? ? (4)運用 正則表達式?
? ? ? ??使用 // 或$regex 編寫正則表達式
? ? ? ?~ db.test_01.find({name:/^王/})? ? ? #查詢姓為王的所有學生數據
? ? ? ?~?db.test_01.find({name:{$regex:"偉$"}})? ? #查詢名字的最后一個字為偉的所有學生數據
? (5)? ?查詢部分的數據:? ?
? ? ?~ limit(n)? ? ? 根據條件查詢前n個數據,? ? 沒有條件的時候也可以查詢
? ? ? ? ? ? ? ? ? ?db.集合名稱.find(查詢條件).limit(n)? ? ? ? ?? ? ?
? ? ~ skip(n)? ? ?跳過n個數據,即查詢n個數據之后的所有數據
? ? ? ? ? ? ? ? ? ??db.集合名稱.find(查詢條件).skip(n))? ? ?
? ? ~ 這兩個可以是直接使用的,建議先limit,再skip
(6)? ?可以使用自定義的查詢*? ? (js的語句)
? ? ? ? ? ? ? ? ? ? ? ?
統計集合里面有多少條數據
?? ? (1)db.集合名稱.find().count()? ? ? ?也可以應用到條件的查詢中
? ? (2)? db.集合名稱.count(條件)
總結
以上是生活随笔為你收集整理的MongoDB数据库(3.mongodb数据库的高级查询)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解Python中的JSON以及在Pyt
- 下一篇: MongoDB数据库(4.mongodb