java mongodb查询条件
BasicDBListcondList=newBasicDBList();BasicDBObjectcond=null;DBCollectioncoll=db.getCo...
BasicDBList condList = new BasicDBList();
BasicDBObject cond = null;
DBCollection coll = db.getCollection("test");
BasicDBList values = new BasicDBList();
values.add(10);
values.add(15);
cond = new BasicDBObject();
cond.put("age",new BasicDBObject("$in",values));
condList.add(cond);
BasicDBObject searchCond = new BasicDBObject();
searchCond.put("$and", condList);
DBCursor ret = coll.find(searchCond);
List<DBObject> list2 = ret.toArray();
for (int i = 0; i < list2.size(); i++) {
System.err.println(list2.get(i));
}
我要查询出 age等于10 和等于15的 , 这个查不出来,,,请问我哪错了 展开
BasicDBObject cond = null;
DBCollection coll = db.getCollection("test");
BasicDBList values = new BasicDBList();
values.add(10);
values.add(15);
cond = new BasicDBObject();
cond.put("age",new BasicDBObject("$in",values));
condList.add(cond);
BasicDBObject searchCond = new BasicDBObject();
searchCond.put("$and", condList);
DBCursor ret = coll.find(searchCond);
List<DBObject> list2 = ret.toArray();
for (int i = 0; i < list2.size(); i++) {
System.err.println(list2.get(i));
}
我要查询出 age等于10 和等于15的 , 这个查不出来,,,请问我哪错了 展开
2个回答
推荐于2018-03-14 · 知道合伙人互联网行家
关注
展开全部
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);
条件列表:
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);
推荐于2016-03-06
展开全部
为什么你里面既有in又有and?根据你的条件貌似一个in就可以了,所以你那个condList根本也就不需要。下面是我写的,你试试,因为没有环境,没有运行过,错了还望抱歉。
BasicDBList cond= new BasicDBList();
cond.add(10);
cond.add(15);
BasicDBObject in = new BasicDBObject("$in", cond);
DBCursor cursor = db.getCollection("test").find(new BasicDBObject("age", in));
BasicDBList cond= new BasicDBList();
cond.add(10);
cond.add(15);
BasicDBObject in = new BasicDBObject("$in", cond);
DBCursor cursor = db.getCollection("test").find(new BasicDBObject("age", in));
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询