如何查找符合多个条件的文档 [英] How to find documents matching multiple criteria

查看:169
本文介绍了如何查找符合多个条件的文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用操作数AND'd查询一个集合。我已经得到了shell版本的工作:

pre $ db $ $ $ db.widgets.find({color:'black,shape:'round' ,weight:100})

我无法找到Java的等价物(使用原生驱动程序)。我已经尝试了各种各样的东西,但这是我最近的尝试:

  //找到所有重量为100 $的黑色圆形小工具b $ b List< BasicDBObject> criteria = new ArrayList< BasicDBObject>(); 
criteria.add(new BasicDBObject(color,black));
criteria.add(new BasicDBObject(shape,round));
criteria.add(新的BasicDBObject(weight,100));

DBCursor cur = widgets.find(new BasicDBObject($ and,criteria));

//获取所有匹配的小部件并将它们放入列表中
List< Widget> widgetList = new ArrayList< Widget>();
DBCursor cur = widgets.find(andQuery); $()。
while(cur.hasNext()){
widgetList.add(new Widget(cur.next()));


if(widgetList.isEmpty())
System.out.println(No results found);

任何想法有什么不对?

解决方案

  BasicDBObject criteria = BasicDBObject(); 
criteria.append(color,black);
criteria.append(shape,round);
criteria.append(weight,100);

DBCursor cur = widgets.find(criteria);


I'm trying to query a collection using operands AND'd together. I've got the shell version working:

db.widgets.find({color: 'black, shape: 'round', weight: 100})

I'm unable to find the Java equivalent (using the native driver). I've tried various things, but here is my latest attempt:

// Find all black, round widgets with weight 100
List<BasicDBObject> criteria = new ArrayList<BasicDBObject>();
criteria.add(new BasicDBObject("color", "black"));
criteria.add(new BasicDBObject("shape", "round"));
criteria.add(new BasicDBObject("weight", 100));

DBCursor cur = widgets.find(new BasicDBObject("$and", criteria));

// Get all matching widgets and put them into a list
List<Widget> widgetList = new ArrayList<Widget>();
DBCursor cur = widgets.find(andQuery);
while (cur.hasNext()) {
  widgetList.add(new Widget(cur.next()));
}

if (widgetList.isEmpty())
  System.out.println("No results found");

Any ideas what is wrong?

解决方案

BasicDBObject criteria = BasicDBObject();
criteria.append("color", "black");
criteria.append("shape", "round");
criteria.append("weight", 100);

DBCursor cur = widgets.find(criteria);

这篇关于如何查找符合多个条件的文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆