如何查找符合多个条件的文档 [英] How to find documents matching multiple criteria
本文介绍了如何查找符合多个条件的文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图使用操作数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屋!
查看全文