您可以使用Java和MongoDB进行参数化查询 - 有点像使用JDBC编写的语句吗?
我想做的是这样的事情。设置一个采用日期范围的查询 - 然后使用不同的范围调用它。我知道DBCursor.find(...)
不能以这种方式工作 - 这是一种伪代码来说明我正在寻找的东西。
DBCollection dbc = ...
DBObject pQuery = (DBObject) JSON.parse("{'date' : {'$gte' : ?}, 'date' : {'$lte' : ?}}");
DBCursor aprilResults = dbc.find(pQuery, "2012-04-01", "2012-04-30");
DBCursor mayResults = dbc.find(pQuery, "2012-05-01", "2012-05-31");
...
答案 0 :(得分:3)
MongoDB本身不支持这样的任何东西,但是再一次,它不需要太多意义,因为它需要每次都将查询发送到服务器。你可以简单 自己在应用程序中构造对象,只需通过更新正确的数组元素来修改特定的部分。
答案 1 :(得分:2)
你应该使用Jongo,一个基于mongo-java-driver的API。
以下是参数化查询的示例:
collection.insert("{'date' : #}", new Date(999));
Date before = new Date(0);
Date after = new Date(1000);
Iterable<Report> results = collection.find("{'date' : {$gte : #}, 'date' : {$lte : #}}", before, after).as(Report.class);