如何在Java代码中使用JavaScript表达式进行MongoDB查询,就像在MongoShell中一样
How to do MongoDB query with JavaScript expression in Java code , like in Mongo shell
1。我知道如何在Mongo shell中使用JavaScript表达式查询(集合名称为resource_phys
。字段名称为val
,定义为String类型,仅包含数值):
//in Mongo shell:
var query1 = ("Number(this.val)>-1 && Number(this.val)<3")
db.resource_phys.find(query1)
//result found
2。现在,我想在Java代码中做同样的事情,但找不到任何支持JavaScript的API。我请求你帮忙给我一些提示。
3.p.s。如果字段val
是数字类型,我知道使用运算符$gt
和$lt
:
//in Java codes:
DBCollection coll = db.getCollection("resource_phys");
DBObject query2 = new BasicDBObject("val",new BasicDBObject("$gt",-1).append("lt",3));
DBCursor cursor = coll.find(query2);
//result got in cursor
您在shell中执行的查询形式实际上只是$where
运算符的快捷形式。所以你会这样翻译:
DBObject query = new BasicDBObject(
"$where",
"Number(this.val)>-1 && Number(this.val)<3"
);
不过,请注意文档,因为运行JavaScript对性能不是一个好主意。您确实应该将字符串转换为实际的数值。
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- j查询utc offSets的时差
- 如何有效地将游戏数据存储在URL查询字符串中
- 如何处理node.js节点mongodb中的连接和查询队列
- 如何从 HTML 查询中删除项目
- 从查询字符串参数推断出正确的数据类型
- 将curl查询转换为jQuery.ajax()
- 触发媒体查询断点时刷新页面
- 使用DynamoDB查询返回
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- 如何将PHP get查询转换为Meteor's HTTP.get()
- AngularJS:获取链接中没有哈希的查询字符串值
- 捕获初始RedQueryBuilder查询中的SQL问题
- AngularJS,如何更改查询字符串
- 具有大型几何图形的基于沙发的空间查询
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- o数据扩展查询在SystemUserRolesSet上不起作用
- Xpath运行缓慢的查询
- Solr查询以按日期月份获取数据&年
- 如何在Java代码中使用JavaScript表达式进行MongoDB查询,就像在MongoShell中一样