您的位置:首页 > 数据库 > Mongodb

Java 实现对mongodb and or 和and or联合查询操作

2018-02-28 10:56 495 查看

AND:[java] view plain copypublic 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);      
    while(dbCursor.hasNext()){
    DBObject dbObj= cursor.next();
    System.out.println(dbObj.get("age"));
   }
}      

OR:[java] view plain copypublic 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);      
    while(dbCursor.hasNext()){
    DBObject dbObj= cursor.next();
    System.out.println(dbObj.get("age"));
   }
 
}      

OR:[java] view plain copypublic 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);      
         while(dbCursor.hasNext()){
    DBObject dbObj= cursor.next();
    System.out.println(dbObj.get("age"));
   }
}    

in:[java] view plain copypublic 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);      
     while(dbCursor.hasNext()){
    DBObject dbObj= cursor.next();
    System.out.println(dbObj.get("age"));
   }
}    

自己的:
and 和or的联合查询条件 (换成sql 这个查询条件就是  m=1 and (a=0 or a=1) and (b=1 or c=1))[java] view plain copypublic  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;  
    }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: