MongoDB之高级查询

懵懂的女人 提交于 2020-01-16 21:49:15

高級查詢

統計查詢

  • 使用count方法
  db.collection.count(query,options)
  • 舉例
    • 統計所有的記錄數

    db.collection.count()

    • 按條件統計記錄數

    db.collection.count({userid:‘1’})

分頁查詢

  • limit()讀取指定數量的數據,skip()跳過指定數量的數據
  • 舉例
    • 只返回三條數據

    db.collection.find().limit(3)

    • 前n個不要,返回後面的數據

    db.collection.find.skip(n)

    • 分頁(每頁2個,第二頁開始),也就是跳過前兩個,只取兩個

    db.collection.find().skip(2).limit(2)

排序

  • sort方法指定排序的字段,使用1和-1指定排序的方式,1是升序

db.collection.find().sort({key:1})

  • skip(),limit(),sort()一起的時候,執行順序是sort,skip,limit

正則複雜條件查詢

  • mongodb的模糊查詢是通過正則表達式的方式來實現的

db.collection.find({field:/正則表達式/})

  • 舉例(字段a中包含b內容的數據)

db.collection.find({a:/b/})

  • 舉例(字段a中以b開頭的數據)

db.collection.find({a:/^b/})

比較查詢

db.collection.find({field:{KaTeX parse error: Expected 'EOF', got '}' at position 9: gt:value}̲}) //大於:field >…lt:value}}) //小於:field < value
db.collection.find({field:{KaTeX parse error: Expected 'EOF', got '}' at position 10: gte:value}̲}) //大等於:field …lte:value}}) //小等於:field <= value
db.collection.find({field:{$ne:value}}) //不等於:field != value

包含查詢

  • 使用in,使in操作符,不包含的話使用nin操作符
  • 舉例
    • a字段包含b和c的數據

    db.collection.find(a:{$in:[b,c]})

    • a中不包含b和c的數據

    db.collection.find(a:{$nin:[b,c]})

條件連接查詢

  • 使用and,and操作符,格式為and[{},{}]
  • 使用or,or操作符,格式為or[{},{}]
  • 舉例
    • a中包含b和c且d包含f的

    db.collection.find(KaTeX parse error: Expected '}', got 'EOF' at end of input: and:[a:{in:[b,c]},d:{$in:[f]}])

    • a中包含b和c或d包含f的

    db.collection.find(KaTeX parse error: Expected '}', got 'EOF' at end of input: or:[a:{in:[b,c]},d:{$in:[f]}])

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!