高級查詢
統計查詢
- 使用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
包含查詢
- 使用 i n 操 作 符 , 不 包 含 的 話 使 用 in操作符,不包含的話使用 in操作符,不包含的話使用nin操作符
- 舉例
- a字段包含b和c的數據
db.collection.find(a:{$in:[b,c]})
- a中不包含b和c的數據
db.collection.find(a:{$nin:[b,c]})
條件連接查詢
- 使用 a n d 操 作 符 , 格 式 為 and操作符,格式為 and操作符,格式為and[{},{}]
- 使用 o r 操 作 符 , 格 式 為 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]}])