我有一些测试数据,我正在使用Java mongodb客户端进行查询。我只是熟悉这个平台,并且已经成功地运行了一些基本的查询。
public class returnJSON {
public static void main(String[] args) {
try {
MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("test");
DBCollection table = db.getCollection("zips");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("pop", new BasicDBObject("$gt", 25000).append("$lt", 26000));
DBCursor cursor = table.find(searchQuery);
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
cursor.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
但是,我想做的是转动java客户端给我的标准输出..
{
"city": "HUNTSVILLE",
"loc": [
-86.567318,
34.726866
],
"pop": 25513,
"state": "AL",
"_id": "35801"
}
{
"city": "MONTGOMERY",
"loc": [
-86.243394,
32.383443
],
"pop": 25282,
"state": "AL",
"_id": "36109"
}
到我需要的位,即
{
"city" : "HUNTSVILLE" ,
"pop" : 25513
}
{
"city" : "MONTGOMERY" ,
"pop" : 25282
}
我见过一些关于BSON和MongoJack的事情,但我不太确定这些是否是我需要的。
我计划最终通过REST服务提供这些信息,但这将是以后的另一个问题。
非常感谢。
答案 0 :(得分:1)
好的,经过一番挖掘,我发现我需要的就是这个......
BasicDBObject searchQuery = new BasicDBObject();
BasicDBObject fields = new BasicDBObject();
searchQuery.put("pop", new BasicBSONObject("$gt", 25000).append("$lt", 25100));
fields.put("city", 1);
fields.put("pop", 1);
fields.put("_id", 0);
DBCursor cursor = table.find(searchQuery, fields);
这返回......
{“city”:“FORT ORD”,“pop”:25009} {“city”:“LAKEWOOD”,“pop”:25008}
这正是我所需要的。