find的多條件查詢


$in修飾符

in修飾符可以輕松解決一鍵多值的查詢情況。就如上面我們講的例子,現在要查詢同事中年齡是25歲和33歲的信息。

1
2
3
db.workmate.find({age:{$in:[25,33]}},
    {name:1,"skill.skillOne":1,age:1,_id:0}
)

於$in相對的修飾符是$nin,就是查詢除了$in條件以為的指,小伙伴們可以自己進行練習一下,這里我就不作過多的演示了。

$or修飾符

它用來查詢多個鍵值的情況,就比如查詢同事中大於30歲或者會做PHP的信息。主要區別是兩個Key值。$in修飾符是一個Key值,這個需要去比較記憶。

1
2
3
4
5
6
db.workmate.find({$or:[
    {age:{$gte:30}},
    {"skill.skillThree":'PHP'}
]},
    {name:1,"skill.skillThree":1,age:1,_id:0}
)

or很好理解,就是或者的意思,我們查出來的結果也是一樣的,查出了年齡大於30歲的,或者會做PHP的信息。相對應的還有$nor修飾符,這里不作演示了,自己試驗一下。

$and修飾符

$and用來查找幾個key值都滿足的情況,比如要查詢同事中大於30歲並且會做PHP的信息,這時需要注意的是這兩項必須全部滿足。當然寫法還是比較簡單的。只要把上面代碼中的or換成and就可以了。

1
2
3
4
5
6
db.workmate.find({$and:[
    {age:{$gte:30}},
    {"skill.skillThree":'PHP'}
]},
    {name:1,"skill.skillThree":1,age:1,_id:0}
)

 

$not修飾符

它用來查詢除條件之外的值,比如我們現在要查找除年齡大於20歲,小於30歲的人員信息。需要注意的是$not修飾符不能應用在條件語句中,只能在外邊進行查詢使用。

1
2
3
4
5
6
7
8
9
10
db.workmate.find({
    age:{
        $not:{
            $lte:30,
            $gte:20
        }
    }
},
{name:1,"skill.skillOne":1,age:1,_id:0}
)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM