Java MongoDB$in与$and查询
这种类型的查询可能吗 我需要在数据库中查询一组指定股票的指定日期的数据。所以数据需要有“this”日期,并且是“this”符号之一 我有以下代码:Java MongoDB$in与$and查询,java,mongodb,Java,Mongodb,这种类型的查询可能吗 我需要在数据库中查询一组指定股票的指定日期的数据。所以数据需要有“this”日期,并且是“this”符号之一 我有以下代码: public void findDateStockSet(String date, ArrayList<String> symbolSet) throws UnknownHostException { this.stocks = this.getCollectionFromDB(); BasicDBObject objec
public void findDateStockSet(String date, ArrayList<String> symbolSet) throws UnknownHostException {
this.stocks = this.getCollectionFromDB();
BasicDBObject objectToFind = new BasicDBObject();
List<BasicDBObject> obj = new ArrayList<BasicDBObject>();
obj.add(new BasicDBObject("date", date));
obj.add(new BasicDBObject("symbol", new BasicDBObject("$in", symbolSet)));
objectToFind.put("$and", obj);
DBCursor cursor = this.stocks.find(objectToFind);
System.out.println("Finding Stocks");
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
System.out.println();
}
public void findDateStockSet(字符串日期、ArrayList符号集)引发UnknownHostException{
this.stocks=this.getCollectionFromDB();
BasicDBObject objectToFind=新的BasicDBObject();
List obj=new ArrayList();
添加(新的基本对象(“日期”,日期));
对象添加(新基本对象(“符号”,新基本对象(“$in”,符号集));
objectToFind.put(“$and”,obj);
DBCursor=this.stocks.find(objectToFind);
System.out.println(“查找库存”);
while(cursor.hasNext()){
System.out.println(cursor.next());
}
System.out.println();
}
这个总是空的。有人能解释一下如何进行这样的查询吗?您不需要使用$and运算符,只需按照下面的json构建查询:
{ "date" : "20100223", "symbol" : { $in : [ "appl", "goog" ] } }
我喜欢使用basicdbobobjectbuilder
util类来构建DBObjects。因此,您的查询将是:
DBObject query = BasicDBObjectBuilder.start()
.add("date", date)
.push("symbol")
.add("$in", symbolSet)
.get();
你能举一个你的文档的例子吗?{u id:{“$oid:“51dc5fc203646b5aa5ffaed2”},“日期”:“20100223”,“符号”:“aapl”,“打开”:“199.91”,“高”:“201.33”,“低”:“195.71”,“关闭”:“197.059”,“卷”:“205468”}我只是想我应该承认我在搜索查询中输入了一个错误的日期。这就是我得到空值的原因。上面的代码和下面米格尔的答案一样有效。谢谢米格尔!这是一种创建查询的简单方法,它工作得非常好!