http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24neAdvanced Queries
.spacetree * ul{
padding-left:0px;
margin-left: 0px;
}
.spacetree * li{
margin-left: 5px;
padding-left:5px;
}
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;}")