`

mongoDB中的“or” ,"like"操作

阅读更多

习惯了sql中的一些用法,当然希望mongoDB也能支持,而且mongoDB号称是最像DB的nosql方案了,那么相应的SQL-Mongo的映射如下,

http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart

 

这里的映射是shell中的例子,是javascript的语法了。

我这边需要java的语法,比较简单的很好实现,然后自己想利用or或者like怎么办呢,看了下QueryBuilder的各个方法,以及对照上面的映射表,总算试出来了。

 

首先介绍简单的like操作,利用正则表达式实现

 Pattern p = Pattern.compile("MongoDB");
 query.put("name",p);

 这里就是查询name中含有MongoDB字符的数据,正则表达式完全是java的语法,对于性能这个没测试过,待以后用到的时候再测试下,这里提示下,记得Pattern p 最好声明为static的,因为就只需要编译一次。

 

其次是or的操作,这个实现完全从映射表转换过来

// x 大于 1002 或者 x 小于 204
BasicDBObject or1 = new BasicDBObject();
or1.put("x", new BasicDBObject("$gt", 1002));

BasicDBObject or2 = new BasicDBObject();
or2.put("x", new BasicDBObject("$lt", 204));
	        
ArrayList<DBObject> list = new ArrayList<DBObject>();
list.add(or1);
list.add(or2);
query.put("$or",list);

//另外一个对y的查询过滤  y > 63
query.put("y", new BasicDBObject("$gt",63));

 以上的mongoDB语法对应到sql就是

where (x > 1002 or x < 204) and y > 63

 

关于group  sum等高级操作,见mongoDB的文档

 

http://www.mongodb.org/display/DOCS/Aggregation

分享到:
评论
1 楼 happy90 2011-04-20  
不错,对我有帮助 

相关推荐

    mongodb和php的用法详解

    如果需要使用SQL中的“LIKE”查询,可以使用MongoDB的正则表达式功能。对于范围查询,MongoDB提供了如“$gt”(大于)、“$gte”(大于等于)、“$lt”(小于)和“$lte”(小于等于)等操作符。对于多条件的组合...

    MongoDB常用的查询更新等操作汇总

    在本文中,我们将深入探讨一些MongoDB常用的操作,包括查询、更新和其他高级特性。 1. **查询操作**: - `find` 方法用于执行查询。例如,`db.collection_name.find()` 返回集合中的所有文档。 - 要指定返回的...

    Java操作mongodb的模糊查询和精确查询

    在Java中操作MongoDB数据库,我们经常会遇到各种查询需求,包括模糊查询和精确查询。MongoDB作为NoSQL数据库,提供了丰富的查询语法,使得我们可以灵活地处理各种数据检索场景。以下是一些常用的操作方法: 1. **...

    mongoDB讲解.ppt

    MongoDB 支持多种查询操作符,如 `$all`, `$exists`, `$ne`, `$in`, `$nin`, `$nor`, `$not`, `$or`, 和 `$and`,以及正则表达式匹配。同时,它提供了 `group()` 函数用于聚合操作,但不支持内连接(joins),这鼓励...

    Practical MongoDB 无水印破地方 0分

    Skills in these areas are in demand, making this book essential reading for those who want to work more productively or break into big data work. It will prove equally useful for entrepreneurs and ...

    Laravel开发-laravel-mongodb-42

    在 Laravel 中使用 MongoDB 的好处之一是,你可以使用 Eloquent ORM 的查询构建器,如 `where`, `orWhere`, `get`, `first`, `update`, `delete` 等方法。同时,`jenssegers/laravel-mongodb` 还支持聚合框架、地理...

    SQL to Mongo Mapping Chart

    通过以上对比,可以看出虽然SQL与MongoDB之间存在诸多不同之处,但在实际应用中,许多常见的查询操作都可以找到相应的转换方法。这种映射有助于开发者更好地理解两种数据库系统的差异,并能够更灵活地在不同类型的...

    Koa2 + mongoDB +编写的通用后台管理系统(

    8. **Mongoose**:Mongoose是Node.js中的MongoDB对象模型工具,提供了面向对象的接口,简化了与MongoDB的交互,如定义Schema、验证数据、实现CRUD操作等。 9. **安全考虑**:在开发过程中,需要注意安全问题,如...

    Python中的MongoDB基本操作:连接、查询实例

    以下是关于Python中MongoDB的基本操作,包括连接数据库、查询数据以及集合操作的详细说明: 1. **连接MongoDB** - `pymongo`库提供了`Connection`类用于建立与MongoDB服务器的连接。例如: ```python from ...

    MongoDB学习笔记

    ### MongoDB学习笔记知识点详解 #### 一、基本操作命令 **1.... 在MongoDB中,可以通过`use`命令来切换当前的...以上这些知识点覆盖了MongoDB的基本使用技巧和一些高级操作,可以帮助您更好地管理和操作数据库中的数据。

    MongoDB的基础查询和索引操作方法总结

    本文将深入探讨 MongoDB 的基础查询和索引操作方法,以便更好地理解和利用其功能。 查询操作是 MongoDB 数据库管理的核心部分,以下是一些基本查询示例: 1. **查询所有记录**:`db.userInfo.find();` 这个命令...

    mongodb与mysql命令详细对比

    - MySQL的`LIKE`操作符在MongoDB中可以用正则表达式实现,如`db.users.find({name:/Joe/})`和`db.users.find({name:/^Joe/})`。 8. 记录计数: - MongoDB的`db.users.count()`用于获取记录总数,带条件的计数用`....

    MongoDB的一些常用查询方法

    19. **Query.Matches()**: 模糊查询,类似于SQL中的LIKE操作,`Query.Matches("Title", str)`可用于匹配包含正则表达式的`Title`字段。 以上这些查询方法是MongoDB中非常基础且常用的,它们可以帮助开发者精准地从...

    MongoVUE的增删改查使用说明

    以下是对MongoVUE在MongoDB管理中的这些操作的详细说明: 一、查询 查询是数据库操作的基础,MongoVUE提供了一种直观的方式来进行精确查询和模糊查询。 1. **精确查询**: - 用户可以通过右键点击集合名,然后...

    social-platform-donut-backend:甜甜圈API

    Note: You can also use the MongoDB servers like Mlab or MongoDB Cluster server如何在您的机器上设置Redis? 请按照提供的步骤在您的操作系统上安装Redis。如何在本地设置此项目? 移至: ...

Global site tag (gtag.js) - Google Analytics