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过多会有效率问题








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