$where复杂查询,查询实例:
mongo中存在文档:woker
{
"id":1001,
"age":20,
"workInfo":{
"salary":6000.00,
"ability":"compute It work"
},
"brotherAge":21
"degree": 3 //0初中,1高中,2专科、3本科、4硕士、5博士
}
1)两个属性值的比较 , age >= brotherAge
db.woker.find({$where:"this.brotherAge >= this.age"})
2)支持计算符+-*/
db.woker.find({$where:"this.brotherAge >= this.age * 2"})
3)支持逻辑运算符
db.woker.find({$where:"this.brotherAge >= this.age && this.salary < 5000.00"})
优点能使用表达式,写出更加复杂的语句,缺点它的查询不能使用索引,比较运算是逐一遍历该集合下所有文档对象,将二进制转换为json对象在磁盘上进行判断操作这将带来多大的性能消耗,效率较低。可用聚合查询。