「db查询java」dbs查询

博主:adminadmin 2023-01-03 07:45:08 666

本篇文章给大家谈谈db查询java,以及dbs查询对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

mongodb中查询,java

方法一:通过构造BasicDBObject对象来进行查询

[java] view plain copy

int startYear=2015,endYear=2016;

int startMonth=12,endMonth=1;

int startDay=1,endDay=1;

BasicDBObject query= new BasicDBObject("applydate", new BasicDBObject("$gte", new Date(startYear - 1900, startMonth - 1, startDay)).append("$lt", new Date(endYear - 1900, endMonth -1, endDay)));//因为无法确知当前月有多少天,所以就从当月的1号(包含)计到下月1号(不包含)

int iCount = cltApplies.find(query).count();

System.out.println(iCount);

经测试上述代码执行完毕后iCount为9。也就是在2016-1-1至2016-1-31期间有9条记录。

方法二:通过BasicDBObjectBuilder对象来查询:

[java] view plain copy

int startYear=2016,endYear=2016;

int startMonth=1,endMonth=2;

int startDay=1,endDay=1;

BasicDBObject query= new BasicDBObject();

query.put("applydate", BasicDBObjectBuilder.start("$gte", new Date(startYear - 1900, startMonth - 1, startDay)).add("$lt", new Date(endYear - 1900, endMonth - 1, endDay)).get());

int iCount = cltApplies.find(query).count();

System.out.println(iCount);

上述代码执行后iCount同样为9。

注意:因为java.util.Date(year,month,day)这个构造函数中year是超出1900的年数,所以需要减去1900;month从0开始,所以需要减去1。这个问题容易被初学者忽视。

下面扩展地说一下如果要进行带日期过滤条件的统计,该如何做。

前面的东西都相同,只是在统计的时候需要调用集合的distinct方法。如统计某个字段不重复的值有哪些,可用如下写法:

[java] view plain copy

int startYear=2016,endYear=2016;

int startMonth=1,endMonth=2;

int startDay=1,endDay=1;

BasicDBObject query= new BasicDBObject();

query.put("applydate", BasicDBObjectBuilder.start("$gte", new Date(startYear - 1900, startMonth - 1, startDay)).add("$lt", new Date(endYear - 1900, endMonth - 1, endDay)).get());

ListString lstUserIds = cltApplies.distinct("userId", query);

System.out.println(lstUserIds.size());

上面这段代码的执行结果为4。也就是在2016-1-1至2016-1-31之间出现了4个不同的userId。

Java对mongodb进行正则查询?

用Java实现MongoDB正则查询小技巧:

//模糊查询

private BasicDBObject getLikeStr(String findStr) {

Pattern pattern = Pattern.compile("^.*" + findStr + ".*$", Pattern.CASE_INSENSITIVE);

return new BasicDBObject("$regex", pattern);

}

DBObject query = new BasicDBObject();

query.put("real_name", getLikeStr(userName));

//endWith文件扩展名

private BasicDBObject endWithStr(String findStr) {

Pattern pattern = Pattern.compile(findStr + "$", Pattern.MULTILINE);

return new BasicDBObject("$regex", pattern);

}

DBObject query = new BasicDBObject();

query.put("filename", endWithStr(“.pdf”));

java如何实现mongodb中查询指定字段?

MongoClient mongoClient=new MongoClient("localhost",27017);//连接数据库

MongoDatabase database=mongoClient.getDatabase("db");//获取数据库

MongoCollectionDocument collection=database.getCollection("集合");//获取集合

System.out.println("请输入需要查询的字段:");

Scanner scanner=new Scanner(System.in);

String j=scanner.next();

FindIterableDocument docs= collection.find(Filters.eq("字段",j);//查询结果

(这里还有另外一种写法,可以供兄弟参考。

FindIterable f = users.find();

MongoCursor cur = f.iterator();

java怎么实现MongoDB分页查询??

int index=0;

while(cursor.hasNext()indexlimit){//确保循环十次,让集合list的size=10,把list传到前台,来达到每页显示十条数据的目的

int i = limit-index;

//查询结果放入集合list中,要取查询结果的后10条

if(i10){

//记录每页第一条数据的时间

if(i==9){

fistTime = db.get("time").toString();

}

//记录每页最后一条数据的时间

if(i==0){

lastTime = db.get("time").toString();

}

list.add(cursor.hasNext().next());

}//end if

index++;

}//end while

java操作mongodb查询

String ageStr = "function (){return parseFloat(this.age) == 19 || parseFloat(this.age) == 30};";

java操作mongodb进行查询,常用筛选条件的设置如下:

条件列表:

BasicDBList condList = new BasicDBList();

临时条件对象:

BasicDBObject cond = null;

DBCollection coll = db.getCollection("A");

1、$where

在某种应用场合,若要集合A查询文档且要满足文档中某些属性运算结果,可以编写一脚本函数用where进行设置,比如:

某集合中存放的用户信息,包括姓名、年龄、手机号、地址等,要筛选出年龄大于20且小于等于40的用户,我们可以这样:

String ageStr = "function (){return parseFloat(this.age) 20 parseFloat(this.age) = 40};";

cond = new BasicDBObject();

cond.put("$where",ageStr);

放入条件列表

condList.add(cond);

2、$in

接1实例中,要查询年龄为23、40、50的用户信息,我们可以这样:

创建一个临时的条件列表对象,将条件值分别添加进去

BasicDBList values = new BasicDBList();

values.add(23);

values.add(40);

values.add(50);

cond = new BasicDBObject();

cond.put("age",new BasicDBObject("$in",values));

放入条件列表

condList.add(cond);

3、模糊匹配

接1实例中,要按照用户的姓名进行模糊查询,如:王,我们可以这样做:

使用不区分大小写的模糊查询

3.1完全匹配

Pattern pattern = Pattern.compile("^王$", Pattern.CASE_INSENSITIVE);

3.2右匹配

Pattern pattern = Pattern.compile("^.*王$", Pattern.CASE_INSENSITIVE);

3.3左匹配

Pattern pattern = Pattern.compile("^王.*$", Pattern.CASE_INSENSITIVE);

3.4模糊匹配

Pattern pattern = Pattern.compile("^.*王.*$", Pattern.CASE_INSENSITIVE);

cond = new BasicDBObject();

cond.put("name",cond);

放入条件列表

condList.add(cond);

4、$gte/$lte/$gt/$lt

接1实例中,要筛选出年龄大于20且小于等于40的用户,我们可以这样:

cond = new BasicDBObject();

cond.append("age",new BasicDBObject("$gt",20));

cond.append("age",new BasicDBObject("$lte",40));

放入条件列表

condList.add(cond);

在日常的查询中筛选的条件可能会有多个,而且多个条件之间都是且的关系,结合上例1、2、3、4中

将每种条件添加到条件列表中,我可以这样:

BasicDBObject searchCond = new BasicDBObject();

searchCond.put("$and", condList);

然后查询数据:

DBCursor ret = coll.find(searchCond);

以上为常用的筛选条件的设置方法,其他的后续在更新。

求教mongodb大神,在java中怎么以时间为条件查询

java操作mongodb进行查询,常用筛选条件的设置如下:条件列表:BasicDBListcondList=newBasicDBList();临时条件对象:BasicDBObjectcond=null;DBCollectioncoll=db.getCollection("A");1、$where在某种应用场合,若要集合A查询文档且要满足文档中某些属性运算结果,可以编写一脚本函数用where进行设置,比如:某集合中存放的用户信息,包括姓名、年龄、手机号、地址等,要筛选出年龄大于20且小于等于40的用户,我们可以这样:StringageStr="function(){returnparseFloat(this.age)20parseFloat(this.age)=40};";cond=newBasicDBObject();cond.put("$where",ageStr);放入条件列表condList.add(cond);2、$in接1实例中,要查询年龄为23、40、50的用户信息,我们可以这样:创建一个临时的条件列表对象,将条件值分别添加进去BasicDBListvalues=newBasicDBList();values.add(23);values.add(40);values.add(50);cond=newBasicDBObject();cond.put("age",newBasicDBObject("$in",values));放入条件列表condList.add(cond);3、模糊匹配接1实例中,要按照用户的姓名进行模糊查询,如:王,我们可以这样做:使用不区分大小写的模糊查询3.1完全匹配Patternpattern=Pattern.compile("^王$",Pattern.CASE_INSENSITIVE);3.2右匹配Patternpattern=Pattern.compile("^.*王$",Pattern.CASE_INSENSITIVE);3.3左匹配Patternpattern=Pattern.compile("^王.*$",Pattern.CASE_INSENSITIVE);3.4模糊匹配Patternpattern=Pattern.compile("^.*王.*$",Pattern.CASE_INSENSITIVE);cond=newBasicDBObject();cond.put("name",cond);放入条件列表condList.add(cond);4、$gte/$lte/$gt/$lt接1实例中,要筛选出年龄大于20且小于等于40的用户,我们可以这样:cond=newBasicDBObject();cond.append("age",newBasicDBObject("$gt",20));cond.append("age",newBasicDBObject("$lte",40));放入条件列表condList.add(cond);在日常的查询中筛选的条件可能会有多个,而且多个条件之间都是且的关系,结合上例1、2、3、4中将每种条件添加到条件列表中,我可以这样:BasicDBObjectsearchCond=newBasicDBObject();searchCond.put("$and",condList);然后查询数据:DBCursorret=coll.find(searchCond);

db查询java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于dbs查询、db查询java的信息别忘了在本站进行查找喔。