gpt4 book ai didi

java - MongoDB $in 与 $and 查询

转载 作者:行者123 更新时间:2023-12-01 14:21:06 25 4
gpt4 key购买 nike

这种类型的查询可能吗?

我需要在数据库中查询一组指定股票的指定日期的数据。因此数据需要具有“这个”日期并且是“这些”符号之一。

我有以下代码:

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();
}

这总是空的。有人可以解释如何进行这样的查询吗?

最佳答案

您不需要使用 $and 运算符,只需将查询构建为以下 json 即可:

{ "date" : "20100223", "symbol" : { $in : [ "appl", "goog" ] } }

我喜欢使用BasicDBObjectBuilder util 类来构建DBObjects。所以你的查询将是:

DBObject query = BasicDBObjectBuilder.start()
.add("date", date)
.push("symbol")
.add("$in", symbolSet)
.get();

关于java - MongoDB $in 与 $and 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17556318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com