查询(来源于mongodb权威指南)

查询(来源于mongodb权威指南)

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24ne
Advanced Queries
.spacetree * ul{ padding-left:0px; margin-left: 0px; } .spacetree * li{ margin-left: 5px; padding-left:5px; }
  • Introduction
  • Retrieving a Subset of Fields
  • Conditional Operators
    • <, <=, >, >=
    • $all
    • $exists
    • $mod
    • $ne
    • $in
    • $nin
    • $nor
    • $or
    • $and
    • $size
    • $type
  • Regular Expressions
  • Value in an Array
    • $elemMatch
  • Value in an Embedded Object
  • Meta operator: $not
  • Javascript Expressions and $where
  • Cursor Methods
    • count()
    • limit()
    • skip()
    • snapshot()
    • sort()
  • Meta query operators
    • $returnKey
    • $maxScan
    • $query
    • $orderby
    • $explain
    • $snapshot
    • $min and $max
    • $showDiskLoc
    • $hint
    • $comment
  • group()
  • See Also


and
find({key:value,key:value})
指定返回的键
find({},{key:1,key:0})

查询条件
$lt<
$lte <=
$gt >
$gte >=


find({key:{$get:18,$lte:30}})

$in 可以用来查询一个键的多个值。
$nin 将返回与数组中所有条件都不匹配的文档。
find({key:{$in:[18,30]}})

$ne:不等于,或不在数组中
ffind({key:{&ne:value}})


$or更通用一些,用来完成多个键值的任意给定值。
find({$or:[{key:value},{key:value}]})

$not是元条件句,即可以用在任何其他条件之上。
$mod会将查询的值除以第一个给定的值,若余数等于第二个给定值则返回该结果。
fnd({key:{$not:{$mod:[5,1]}}})

条件句规则
条件句是内层文档的键,而修改器则是外层文档的键。
一个键可以有多个条件,但是一个键不能对应多个更新修改器。

null不仅匹配自身,而且匹配不存在的。所以这种匹配还会返回缺少这个键的所有文档。
$exists判段键值已存在。
find({key:{$in:[null],$exists:true}})

数组

$all 会匹配一组元素。
要找既有apple,又有banana的文档,就得用$all来查询
find({fruit:{$all:["apple","banana"]}})

想查询数组指定位置的元素,则需要使用key.index语法指定下标
find({key.2:value})

$size 可以用其查询指定长度的数组。$size并不能与其他查询子句组合。
find({key:{$size:3}})

$slice find的第二个参数是可选的,可以指定返回那些键。$slice返回数组的一个子集合。
findOne(条件,{key:{$slice:10}}) 返回数组的前10条记录
findOne(条件,{key:{$slice:-10}}) 返回数组的后10条记录
findOne(条件,{key:{$slice:[23,10]}}) 偏移值23开始的10条记录


查询内嵌文档
find({key.subkey:value,key.subkey:value})
$elemMatch 将限定条件进行分组,仅当需要对一个内嵌文档的多个键操作时才会用到。
find(key:{$elemMatch:{key:value,key:value}})

$where 可以执行任意JavaScript作为查询的一部分。
find($where:"this.x+this.y==10")
find($where:"function(){return 1;}")



你可能感兴趣的:(查询(来源于mongodb权威指南))