Mongo查詢

1. 查找所有文檔

db.c.find()

2. 按照簡單類型查找(要注意類型匹配)

db.user.find({"age":27}) //年齡是數字,不需要引號

db.user.find({"username":"joe"}) //用戶名是字符串,需要引號

3. 組合條件查詢

db.user.find("username":"joe", "age":27) //可以2個條件或者更多組合查詢,條件用逗號分隔

4. 指定要返回的鍵

db.user.find({}, {"username":1,"email":1}) //只要返回用戶名和郵箱,前面的過濾條件沒有指定,也就是find可以看成一個函數,第一個入參是條件,第二個入參是需要返回哪些字段

db.user.find({}, {"age":0}) //表示年齡不返回,其他的都返回

5. 範圍查找

db.user.find({"age": {"$gte": 18, "$lte": 30} }) //查找年齡介於18到30歲之間的用戶  $lt 小於  $lte 小於等於  $gt 大於  $gte 大於等於

6. 不等於查找

db.user.find({"username": {"$ne":"joe"} }) //查找姓名不爲joe的用戶

7. 查找中獎人信息

db.raffle.find({"$or": [{"winner":true}, {"ticket_no":{"$in":[739,874,984]}} ] })  //in值後面是數組(可以是不同類型字段),or後面的值也是數組。

8. null 查詢

db.find ({"z" : {"$in": [null], "$exists": true} }) //由於沒有$eq 等於操作符,用in替代。 另外要加exists爲true,因爲首先要存在,其次,纔是空

9. 數組查詢

db.food.insert({“fruits”:["apple","banana","peach"]})

db.food.find({"fruits":"apple"}) //能夠匹配文檔,查詢包含蘋果的記錄

db.food.find({"fruits":{"$all":["apple", banana]}}) //能夠匹配文檔,查詢包含蘋果和香蕉的記錄

db.food.find({"fruits.2":“peach”}) //能夠匹配文檔,查詢數組第3個元素爲桃子的記錄

10. 查詢內嵌文檔:

db.people.find({"name.first":"joe", "name.last":"schema"}) //用點分隔

db.people.find({"comments": {"$elemMatch":{"author":"joe","score":{"$gte":5}}}}) //查找joe評論分數大於5分的文章,一組條件要用elemMatch

11. 分頁與排序

db.stock.find({"desc":"mp3"}).limit(50).skip(50).sort({"price":-1}) //查找描述爲MP3的文檔,顯示50條,先跳過50條(顯示第二頁)。然後按照price降序。skip過多會有效率問題








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章