3.4.2.8 條件過濾
關系型數據庫開發對於數據的篩選,想到的一定是where語句,MongoDB里面提供的是"$where"。
范例:使用where進行數據的查詢
db.students.find({"$where" : "this.age>20"}).pretty()
db.students.find("this.age>20").pretty()
這里的this表示逐條的判斷。
對於“$where”是可以簡化的,但是這類的操作是屬於進行每一行的信息判斷,實際上對於數據量較大的情況並不方便。實際上以上的代碼嚴格來講是屬於編寫一個操作的函數。
db.students.find(function(){
return this.age > 20;
}).pretty()
db.students.find({"$where" : function(){
return this.age > 20;
}}).pretty()
以上只是查詢了一個判斷,如果要想實現多個條件的判斷,那么就需要使用“and”連接。
db.students.find({"$and" : [
{"$where" : "this.age > 19"},
{"$where" : "this.age < 21"}
]}).pretty()
雖然這種形式的操作可以實現數據查詢,但最大缺點是將MongoDB里面保存的BSON數據變為JavaScript的語法結構,這樣的方式不方便使用數據庫的索引機制。