我在Java中使用下面提到的MongoDB查询来查找字段price
的最大值:
DBCursor cursor = coll.find(query,fields).sort(new BasicDBObject("price",1)).limit(1);
传递给fields
函数的 coll.find
参数仅包含price
字段。
所以我得到了以下形式的输出:
{"price" : value}
是否有任何方法只在没有字段名称和大括号等的输出中获取值,以便可以将其分配给变量或返回到调用函数等。
或者,如果有任何其他可用的查询或机制可用于同一目的。
请建议..
谢谢&此致
答案 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