zoukankan      html  css  js  c++  java
  • Java中mongodb使用and和or的复合查询

     在MongoDB的JAVA查询中对应这些问题

    and查询
    1  //条件 startsAt< curr  and endsAt > curr
    2 long curr = new Date().getTime()/1000;
    3         DBObject query = new BasicDBObject();
    4         query.put("startsAt",new BasicDBObject("$lte", curr));
    5         query.put("endsAt",new BasicDBObject("$gte", curr));

      or 查询

    1  //条件是startsAt < curr or endsAt>curr
    2  BasicDBObject autoEnd = new BasicDBObject();
    3          BasicDBList condList = new BasicDBList();
    4           condList.add(new BasicDBObject("startsAt", new BasicDBObject("$lte", curr)));
    5           condList.add(new BasicDBObject("endsAt", new BasicDBObject("$gte", curr)));
    6         autoEnd.put("$or",condList);

    这是复合查询
     1  //条件类似:project="H" and (startsAt<curr or endsAt>curr)
     2      
     3    BasicDBObject basicDBObject = new BasicDBObject();
     4 
     5         BasicDBList endList = new BasicDBList();
     6         BasicDBObject forceEnd = new BasicDBObject();
     7         forceEnd.put("project","H");
     8 
     9         BasicDBObject autoEnd = new BasicDBObject();
    10         BasicDBList condList = new BasicDBList();
    11         condList.add(new BasicDBObject("startsAt", new BasicDBObject("$lte", curr)));
    12         condList.add(new BasicDBObject("endsAt", new BasicDBObject("$gte", curr)));
    13         autoEnd.put("$or",condList);
    14 
    15         endList.add(forceEnd);
    16         endList.add(autoEnd);
    17 
    18         basicDBObject.put("$and",endList);
    19 
    20         DBCursor cursor = mongoTemplate.getCollection("数据库表名").find(basicDBObject);
    
    

      

  • 相关阅读:
    poj 1584
    poj 1113 & poj 2187
    pku 1321 棋盘问题
    poj 1408
    pku 2251 Dungeon Master
    sdut oj 2218 Give Me an E
    Android工程 单元测试
    Android Timer编写方式
    去除工程的.svn隐藏文件夹
    Android 绑定远程服务出现 Not Allowed to bind service
  • 原文地址:https://www.cnblogs.com/shuiyelifang/p/9103619.html
Copyright © 2011-2022 走看看