java操作mongodb(高级查询)
来源:互联网 发布:并发编程实践 编辑:程序博客网 时间:2024/05/16 13:44
直接上代码(依赖代码请查看之前的博客):
- public void query() {
-
- BasicDBObject queryObject = new BasicDBObject().append(
- QueryOperators.OR,
- new BasicDBObject[] { new BasicDBObject("id", 1),
- new BasicDBObject("id", 2) });
- find(queryObject, "(查询id等于1或者id等于2的数据)");
-
-
- queryObject = new BasicDBObject().append(QueryOperators.AND,
- new BasicDBObject[] { new BasicDBObject("id", 10),
- new BasicDBObject("name", "10") });
- find(queryObject, "(查询id等于10并且name等于10的数据)");
-
-
- queryObject = new BasicDBObject().append("id",
- new BasicDBObject().append(QueryOperators.GT, 10));
- find(queryObject, "(查询id大于10的数据)");
-
- queryObject = new BasicDBObject().append("id",
- new BasicDBObject().append(QueryOperators.GTE, 11));
- find(queryObject, "(查询id大于等于11的数据)");
-
- queryObject = new BasicDBObject().append("id",
- new BasicDBObject().append(QueryOperators.LT, 2));
- find(queryObject, "(查询id小于2的数据)");
-
- queryObject = new BasicDBObject().append("id",
- new BasicDBObject().append(QueryOperators.LTE, 2));
- find(queryObject, "(查询id小于等于2的数据)");
-
-
- queryObject = new BasicDBObject().append("id", new BasicDBObject(
- QueryOperators.IN, new int[] { 1, 2 }));
- find(queryObject, "(查询id为1和2的数据)");
-
- queryObject = new BasicDBObject().append("id", new BasicDBObject(
- QueryOperators.NIN, new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }));
- find(queryObject, "(查询id不为1,2,3,4,5,6,7,8,9的数据)");
-
-
- }
-
- public void find(BasicDBObject condition, String str) {
- System.out.println("================" + str + "==================");
- DB db = MongoManager.getDB(Constants.DB);
- DBCollection collection = db.getCollection(Constants.COLLECTION_USER);
- DBCursor find = collection.find(condition);
- while (find.hasNext()) {
- User user = new User();
- user.parse(find.next());
- System.out.println(user);
- }
-
- }
-
- public static void main(String[] args) {
- UserDao userDao = new UserDao();
- userDao.query();
- }
QueryOperators类源码:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- package com.mongodb;
-
-
-
-
-
-
- public class QueryOperators {
- public static final String OR = "$or";
- public static final String AND = "$and";
-
- public static final String GT = "$gt";
- public static final String GTE = "$gte";
- public static final String LT = "$lt";
- public static final String LTE = "$lte";
-
- public static final String NE = "$ne";
- public static final String IN = "$in";
- public static final String NIN = "$nin";
- public static final String MOD = "$mod";
- public static final String ALL = "$all";
- public static final String SIZE = "$size";
- public static final String EXISTS = "$exists";
- public static final String ELEM_MATCH = "$elemMatch";
-
-
- public static final String WHERE = "$where";
- public static final String NOR = "$nor";
- public static final String TYPE = "$type";
- public static final String NOT = "$not";
-
-
- public static final String WITHIN = "$within";
- public static final String NEAR = "$near";
- public static final String NEAR_SPHERE = "$nearSphere";
- public static final String BOX = "$box";
- public static final String CENTER = "$center";
- public static final String POLYGON = "$polygon";
- public static final String CENTER_SPHERE = "$centerSphere";
-
- public static final String MAX_DISTANCE = "$maxDistance";
- public static final String UNIQUE_DOCS = "$uniqueDocs";
-
-
-
- public static final String RETURN_KEY = "$returnKey";
- public static final String MAX_SCAN = "$maxScan";
- public static final String ORDER_BY = "$orderby";
- public static final String EXPLAIN = "$explain";
- public static final String SNAPSHOT = "$snapshot";
- public static final String MIN = "$min";
- public static final String MAX = "$max";
- public static final String SHOW_DISK_LOC = "$showDiskLoc";
- public static final String HINT = "$hint";
- public static final String COMMENT = "$comment";
- }
输出结果:
- ================(查询id等于1或者id等于2的数据)==================
- id:1,name:jinhui,address:beijing
- id:2,name:manman,address:beijing
- ================(查询id等于10并且name等于10的数据)==================
- ================(查询id大于10的数据)==================
- id:11,name:11,address:11
- id:12,name:12,address:12
- ================(查询id大于等于11的数据)==================
- id:11,name:11,address:11
- id:12,name:12,address:12
- ================(查询id小于2的数据)==================
- id:1,name:jinhui,address:beijing
- ================(查询id小于等于2的数据)==================
- id:1,name:jinhui,address:beijing
- id:2,name:manman,address:beijing
- ================(查询id为1和2的数据)==================
- id:1,name:jinhui,address:beijing
- id:2,name:manman,address:beijing
- ================(查询id不为1,2,3,4,5,6,7,8,9的数据)==================
- id:11,name:11,address:11
- id:12,name:12,address:12
数据库数据如下所示:
0 0