牛骨文教育服务平台(让学习变的简单)
博文笔记

MongoDB $where操作符

创建时间:2016-05-04 投稿人: 浏览次数:2794
$where操作符
$where操作符功能强大且灵活,它可以将JavaScript表达式的字符串或JavaScript函数作为查询语句的一部分。在JavaScri pt表达式和函数中,可以使用this或obj来引用当前操作的文档。JavaScript表达式或函数返回值为true时,才会返回当前的文档。 查询时,$where操作符不能使用索引,每个文档需要从BSON对象转换成JavaSript对象后,才可以通过$where表达式来运行。因此,它比常规查询要慢很多,一般情况下,要避免使用$where查询。
$where实例
db = connect("localhost:27017/test"); db.col.drop();var bulk = db.col.initializeUnorderedBulkOp(); //测试数据var doc1 = { "apple":1, "banana": 6, "peach" : 4} bulk.insert(doc1);var doc2 = {"apple":3, "banana": 3, "peach" : 4}        bulk.insert(doc2);//执行插入操作bulk.execute()  print("========find--$where操作符的使用========")/*  参数可以是JavaScript函数或JavaScript表达式的字符串   { $where: function() { } }     { $where: "this.A == this.B"} 或 { $where: "obj.A == obj.B"}*/var cursor = db.col.find(                        {                            $where:function()                             {                               for (var current in this)                                {								  printjson(current);	                                  for (var other in this)                                  {                                       if (current != other && this[current] == this[other])                                           return true;                                  }                               }                            }                        });printjson( cursor.toArray() ); var cursor = db.col.find(                        {                            $where:"this.apple==1 && this.banana==6"                        });printjson( cursor.toArray() ); 

运行结果:



C:>mongo --quiet find_where.js========find--$where操作符的使用========[        {                "_id" : ObjectId("56e57131ec7f668422a1094a"),                "apple" : 3,                "banana" : 3,                "peach" : 4        }][        {                "_id" : ObjectId("56e57131ec7f668422a10949"),                "apple" : 1,                "banana" : 6,                "peach" : 4        }]



            
                
				
			
		
        	
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。