日期:2014-05-16  浏览次数:20578 次

Mongodb基本查询整理

本文由我们组的程序媛MM汇总整理微笑

----------------------------------- 我是分割线 ------------------------------------------

精确匹配

  • 单个键值对:{"age":28}, 返回"age"值为28的所有文档。
  • 多个键值对:{"username":"tom", "age":28},将多个查询条件组合在一起,等同于:条件1 AND 条件2 AND …AND 条件N。该查询文档返回:用户名为tom,并且年龄为28的所有文档。
Edit

条件匹配

Edit

范围

  • “$lt”、“$lte”、“$gt”、“$gte”
    比较操作符,分别对应:
    <    $lt 
    <=   $lte
    >    $gt
    >=   $gte
    

    可以组合起来查找一个范围内的值。
    如:年龄在18到35之间的查询文档是:{"age": {"$gte":18, "$lte":35}}
    该范围查询方式对日期类型值尤为方便。
  • “$ne” 
    “不相等”操作符,对应:!=
    如用户名不是tom的查询文档是: {"username": {"$ne":"tom"}}
Edit

OR查询

  • $in
    用来查询一个键对应的多个值,对单个键做OR查询。
    如:活动中奖号码是1,4,8,要找出全部这些中奖数据的查询文档是:{"ticket_no":{"$in":[1, 4, 8]}}
  • $nin
    相对地,$nin返回与数组中值都不符合的数据,如找出没有中奖的数据的查询文档是:{ "ticket_no": {"$nin": [1, 4, 8]} }。
  • $or
    用来查询多个键的任意值,会更通用一些。它接受一个所有可能条件的数组作为参数,也可以含有其他条件句。如:
    { 
        "$or": [
            {
                "ticket_no":{
                    "$in":[1, 4, 8]
                }
            }, 
            {
                "winner":true
            }
        ]
    }
    

    $or的第一个条件应尽可能地匹配更多的文档,这样才最有效。