Java 实现对mongodb and or 和and or联合查询操作
2017-08-31 09:28
127 查看
转载:
AND:
public void testAnd(){
//agender='female' AND age > 27
DBObject queryCondition = new BasicDBObject();
queryCondition.put("agender", "female");
queryCondition.put("age", new BasicDBObject("$gt", 27));
DBCursor dbCursor = coll.find(queryCondition);
assertEquals(1, dbCursor.size());
assertEquals("Jane", dbCursor.next().get("username"));
}
OR:
OR:
public void testOrMultiFields(){
DBObject queryCondition = new BasicDBObject();
//agender=female OR age<=23
queryCondition = new BasicDBObject();
BasicDBList values = new BasicDBList();
values.add(new BasicDBObject("agender", "female"));
values.add(new BasicDBObject("age", new BasicDBObject("$lte", 23)));
queryCondition.put("$or", values);
DBCursor dbCursor = coll.find(queryCondition);
assertEquals(4, dbCursor.size());
assertEquals("Jim", dbCursor.next().get("username"));
}
in:
public void testIn(){
DBObject queryCondition = new BasicDBObject();
//age in [13, 47]
queryCondition = new BasicDBObject();
BasicDBList values = new BasicDBList();
values.add(13);
values.add(47);
queryCondition.put("age", new BasicDBObject("$in", values));
DBCursor dbCursor = coll.find(queryCondition);
assertEquals(2, dbCursor.size());
assertEquals("tom", dbCursor.next().get("username"));
}
自己的:
and 和or的联合查询条件 (换成sql 这个查询条件就是 m=1 and (a=0 or a=1) and (b=1 or c=1))
public void testAnd(){
//agender='female' AND age > 27
DBObject queryCondition = new BasicDBObject();
queryCondition.put("agender", "female");
queryCondition.put("age", new BasicDBObject("$gt", 27));
DBCursor dbCursor = coll.find(queryCondition);
assertEquals(1, dbCursor.size());
assertEquals("Jane", dbCursor.next().get("username"));
}
OR:
public void testOrSingleField(){ DBObject queryCondition = new BasicDBObject(); //age<15 OR age>27 queryCondition = new BasicDBObject(); BasicDBList values = new BasicDBList(); values.add(new BasicDBObject("age", new BasicDBObject("$gt", 27))); values.add(new BasicDBObject("age", new BasicDBObject("$lt", 15))); queryCondition.put("$or", values); DBCursor dbCursor = coll.find(queryCondition); assertEquals(3, dbCursor.size()); assertEquals("tom", dbCursor.next().get("username")); }
OR:
public void testOrMultiFields(){
DBObject queryCondition = new BasicDBObject();
//agender=female OR age<=23
queryCondition = new BasicDBObject();
BasicDBList values = new BasicDBList();
values.add(new BasicDBObject("agender", "female"));
values.add(new BasicDBObject("age", new BasicDBObject("$lte", 23)));
queryCondition.put("$or", values);
DBCursor dbCursor = coll.find(queryCondition);
assertEquals(4, dbCursor.size());
assertEquals("Jim", dbCursor.next().get("username"));
}
in:
public void testIn(){
DBObject queryCondition = new BasicDBObject();
//age in [13, 47]
queryCondition = new BasicDBObject();
BasicDBList values = new BasicDBList();
values.add(13);
values.add(47);
queryCondition.put("age", new BasicDBObject("$in", values));
DBCursor dbCursor = coll.find(queryCondition);
assertEquals(2, dbCursor.size());
assertEquals("tom", dbCursor.next().get("username"));
}
自己的:
and 和or的联合查询条件 (换成sql 这个查询条件就是 m=1 and (a=0 or a=1) and (b=1 or c=1))
public DBObject getWhereField(){ DBObject wheremap = new BasicDBObject(); wheremap.put("m", 1); // DBObject[] orDbj = new BasicDBObject[2]; orDbj[0] = new BasicDBObject("a", 0); orDbj[1] = new BasicDBObject("a", 1); DBObject[] orDbj1 = new BasicDBObject[2]; orDbj1[0] = new BasicDBObject("b", 1); orDbj1[1] = new BasicDBObject("c", 1); BasicDBList values = new BasicDBList(); values.add(new BasicDBObject("$or", orDbj)); values.add(new BasicDBObject("$or", orDbj1)); wheremap.put("$and", values); return wheremap; }
相关文章推荐
- 用Java实现多线程服务器程序
- 利用Java实现串口全双工通讯
- 在Java applet中如何实现一个模式对话框?
- 用 Java 实现回调例程
- 利用Java实现网络通信
- Java Tip: 实现Command模式
- 在java中实现对FORM的打印功能
- 如何在Java应用程序中实现copy图像功能。
- Java图形设计中,利用Bresenham算法实现直线线型,线宽的控制(NO 2D GRAPHICS)
- 从一个ConnectionPool的实现看design pattern的运用 (source code for Java 1.1)
- 用Java实现的设计模式系列(1)-Factory
- dom规范和java中的实现(三)
- dom规范和java中的实现(二)
- IBM Java Jvm GC实现内幕
- 在 Windows 中实现 Java 本地方法
- 使用Java实现数据报通讯过程
- http断点续传简单实现(java)
- Java.NET --一个基于Java的Microsoft.NET框架的实现
- 用JAVA实现Undo、Redo,Copy、Paste、Cut
- 用Java实现Web服务器 HTTP协议