标签:
查询
1. MongoDB使用find来进行查询。find的第一个参数决定了要返回哪些文档,这个参数是一个文档,用于指定查询条件。空的查询会匹配集合的全部内容。要是不指定查询,默认是{}。
2. 可以通过find的第二个参数来指定想要的键。这样即会节省传输的数量,又能节省客户端解码文档的时间和内存消耗。举例:db.users.find({},{"username":1,"email":1})
3. 默认情况下"_id"这个键总是被返回,即便是没有指定想要返回这个键。可以通过第二个参数剔除。
4. 可以通过第二个参数来剔除查询结构中的某个键值对。举例:db.users.find({},{"_id":0}),这样"_id"就不会被返回。
5. 查询条件
1). 查询条件:"$lt"、"$lte"、"$gt"和"$gte"就是全部的比较操作符,分别对应<、<=、> 和>=。举例:db.users.find({"age":{"$gte":18,"$lte":30}})。"$ne" 表示不等于。
2). OR查询:
a. "$in"可以用来查询一个键的多个值: db.raffle.find({"ticket_no":{"$in":[725,542,390]}})
b. "$nin"将返回与数组中所有条件不匹配的内容: db.raffle.find({"ticket_no":{"$nin":[725,542,390]}})
c. "$or"可以在多个键中查找任意给定的值: db.raffle.find({"$or":[{"ticket_no":725},{"wenner":true}]})
3). $not"
a. "$mod"取模运算符,"$mod"将会查询的值除以第一个给定值,若余数等于第二个给定的值则匹配成功:db.users.find({"id_num":{"$mod":[5,1]}})
b. 如果查询上一条相反的结果:db.users.find({"id_num":{"#not":{"$mod":[5,1]}}})。
c. "$not"与正则表达式联合使用时,极为有用,用来查找那些鱼特定模式不匹配的文档。
4). 条件语义: 条件语句是内层文档的键,而修改器则是外层文档的键。
6. 使用普通的AND型查询时,总是希望尽可能用最少的条件来限定结果的范围。OR型查询正相反:第一个查询条件应该尽可能匹配更多的文档,这样才是最为高效的。"$or"在任何情况下都会
正常工作。如果查询优化器可以更高效地处理"$in",那就选择使用它。
7. 特定查询条件:
1). null : db.c.find({"y":null}) 。null 不仅会匹配某个键的值为null的文档,而且还会匹配不包含这个键的文档。
如果仅想匹配键值值为null的文档,纪要检查该键的值是否为null,还要通过"$exists"条件判定键值已存在。db.c.find({"z":{"$in":[null],"$exists":true}})
标签:
原文地址:http://www.cnblogs.com/Jtianlin/p/5115784.html