使用java的mongodb中的最大/最小值(没有字段名称)

时间:2013-09-09 10:38:31

标签: java mongodb max min

我在Java中使用下面提到的MongoDB查询来查找字段price的最大值:

DBCursor cursor = coll.find(query,fields).sort(new BasicDBObject("price",1)).limit(1);
传递给fields函数的

coll.find参数仅包含price字段。

所以我得到了以下形式的输出:

{"price" : value}

是否有任何方法只在没有字段名称和大括号等的输出中获取值,以便可以将其分配给变量或返回到调用函数等。

或者,如果有任何其他可用的查询或机制可用于同一目的。

请建议..

谢谢&此致

2 个答案:

答案 0 :(得分:1)

由于MongoDB使用BSON进行通信这一事实,您无法做到这一点。

您想要的单个值将是无效的BSON。很容易将它过滤掉。

答案 1 :(得分:1)

您可以从DBCursor对象获取价格值,如下所示。

while (cursor.hasNext()) {
    Double price = (Double) cursor.next().get("price");
}

在mongo shell上,你可以按如下方式进行:

db.priceObj.find({},{_id:0, price:1}).sort({price:-1}).limit(1)[0].price