首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

MongoDB 查詢命令大全:從基礎到進階的 21 個實用範例

     編輯:DB2 教學

MongoDB 查詢命令大全:從基礎到進階的 21 個實用範例

本文整理了 MongoDB Shell 中最常用的 21 種查詢場景,每項均附上 MongoDB 語法與對應的 SQL 寫法,方便關係型資料庫開發者快速上手。

環境假設

集合名稱:userInfo,欄位包含 name、age、sex 等。

查詢清單

  1. 查詢所有記錄
    db.userInfo.find()
    相當於:SELECT * FROM userInfo;
    預設每頁 20 筆,輸入 it 迭代下一頁(不加分號)。可用 DBQuery.shellBatchSize=50 調整每頁筆數。
  2. 去重查詢 distinct
    db.userInfo.distinct("name")
    相當於:SELECT DISTINCT name FROM userInfo;
  3. 精確匹配 age = 22
    db.userInfo.find({age: 22})
  4. 大於 age > 22
    db.userInfo.find({age: {$gt: 22}})
  5. 小於 age < 22
    db.userInfo.find({age: {$lt: 22}})
  6. 大於等於 age >= 25
    db.userInfo.find({age: {$gte: 25}})
  7. 小於等於 age <= 25
    db.userInfo.find({age: {$lte: 25}})
  8. 範圍查詢 23 <= age <= 26
    db.userInfo.find({age: {$gte: 23, $lte: 26}})
  9. 模糊查詢:包含 "mongo"
    db.userInfo.find({name: /mongo/})
    相當於:SELECT * FROM userInfo WHERE name LIKE '%mongo%';
  10. 模糊查詢:以 "mongo" 開頭
    db.userInfo.find({name: /^mongo/})
    相當於:SELECT * FROM userInfo WHERE name LIKE 'mongo%';
  11. 指定投影欄位 name, age
    db.userInfo.find({}, {name: 1, age: 1})
    相當於:SELECT name, age FROM userInfo;
    1/true 表示包含,0/false 表示排除。
  12. 條件 + 投影 age > 25 且只取 name, age
    db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1})
  13. 排序
    // 升序
    db.userInfo.find().sort({age: 1})
    // 降序
    db.userInfo.find().sort({age: -1})
  14. 多條件 AND name='zhangsan' AND age=22
    db.userInfo.find({name: 'zhangsan', age: 22})
  15. 限制筆數 LIMIT 5
    db.userInfo.find().limit(5)
  16. 跳過前 N 筆 SKIP 10
    db.userInfo.find().skip(10)
  17. 分頁查詢:第 6-10 筆
    db.userInfo.find().limit(10).skip(5)
  18. OR 查詢 age=22 OR age=25
    db.userInfo.find({$or: [{age: 22}, {age: 25}]})
  19. 查詢第一筆
    db.userInfo.findOne()
    等同於 db.userInfo.find().limit(1)。
  20. 統計符合條件的文檔數
    db.userInfo.find({age: {$gte: 25}}).count()
  21. 統計欄位非空文檔數
    db.userInfo.find({sex: {$exists: true}}).count()
    相當於:SELECT COUNT(sex) FROM userInfo;

小結

MongoDB 的查詢語法靈活且富有表達力,掌握上述 21 種模式基本可覆蓋日常 90% 的查詢需求。建議在實際專案中結合索引策略,進一步提升查詢效能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved