MongoDB $where操作符
2016-05-04 14:41
239 查看
$where操作符$where操作符功能强大且灵活,它可以将JavaScript表达式的字符串或JavaScript函数作为查询语句的一部分。在JavaScript表达式和函数中,可以使用this或obj来引用当前操作的文档。JavaScript表达式或函数返回值为true时,才会返回当前的文档。查询时,$where操作符不能使用索引,每个文档需要从BSON对象转换成JavaSript对象后,才可以通过$where表达式来运行。因此,它比常规查询要慢很多,一般情况下,要避免使用$where查询。$where实例
db=connect("localhost:27017/test");
db.col.drop();
varbulk=db.col.initializeUnorderedBulkOp();
//测试数据
vardoc1={"apple":1,"banana":6,"peach":4}
bulk.insert(doc1);
vardoc2={"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"}
*/
varcursor=db.col.find(
{
$where:function()
{
for(varcurrentinthis)
{
printjson(current);
for(varotherinthis)
{
if(current!=other&&this[current]==this[other])
returntrue;
}
}
}
});
printjson(cursor.toArray());
varcursor=db.col.find(
{
$where:"this.apple==1&&this.banana==6"
});
printjson(cursor.toArray());运行结果:
C:\>mongo--quietfind_where.js
========find--$where操作符的使用========
[
{
"_id":ObjectId("56e57131ec7f668422a1094a"),
"apple":3,
"banana":3,
"peach":4
}
]
[
{
"_id":ObjectId("56e57131ec7f668422a10949"),
"apple":1,
"banana":6,
"peach":4
}
]
相关文章推荐
- MongoDB元素查询操作符
- MongoDB逻辑查询操作符
- MongoDB 命令速查表
- Windows下安装MongoDB
- MongoDB安装
- monodb_在win7上安装MongoDB服务
- 将MongoDB安装为Windows服务时cmd命令下路径中存在空格的问题
- MongoDb的普通查询操作
- MongoDB -- 插入时间少8小时
- 第十二章 springboot + mongodb(复杂查询)
- MongoDB增删查改
- mongodb 常用操作
- MongoDB学习12_MongoDB学习笔记之 第3章 MongoDB的Java驱动
- MongoDB在实际项目
- mongodb:$each和$addToSet一次添加多个值
- mac下安装mongodb
- MongoDB数据库设计中6条重要的经验法则,part 3
- MongoDB数据库设计中6条重要的经验法则,part 2
- MongoDB数据库设计中6条重要的经验法则,part 1
- MongoDB权限简介