【发布时间】:2017-01-14 15:12:37
【问题描述】:
【问题讨论】:
-
您是否尝试过任何可以帮助我们了解您的问题的方法?
-
在 StackOverlow 上真的不鼓励使用图像作为代码,请使用实际代码而不是图像来更新您的问题。
标签: java json mongodb mongodb-query
【问题讨论】:
标签: java json mongodb mongodb-query
如果您使用的是 Mongo 3.x 驱动程序,您可以使用类似的东西。
MongoClient mongoClient = new MongoClient();
MongoDatabase db = mongoClient.getDatabase("test");
MongoCollection<Document> movieToUsers = db.getCollection("movieToUsers");
Bson filter = Filters.eq("movieName", "Green Mile");
List<String> names = movieToUsers.distinct("user.name", filter, String.class).into(new ArrayList<>());
【讨论】:
你org.json图书馆
样本
//Json object
JSONObject obj = new JSONObject(" .... ");
String id = obj.getString("_id");
String movieName = obj.getString("movieName");
//Json array
JSONArray users = obj.getJSONArray("user");
for (int i = 0; i < arr.length(); i++)
{
String name = user.getJSONObject(i).getString("name");
String name = user.getJSONObject(i).getString("date");
}
【讨论】:
您可以将 distinct() 函数与查询一起使用,如下所示:
mongo shell:
var results = db.movieToUsers.distinct("user.name", { "movieName": "Green Mile" });
printjson(results);
在Java中,这是通过distinct()方法实现的,例如
// Get a new connection to the db assuming that it is running
MongoClient m1 = new MongoClient();
// use test as a database or use your own database
DB db = m1.getDB("test");
// fetch the collection object
DBCollection coll = db.getCollection("movieToUsers");
// call distinct method with the query and store results in variable results
List results = coll.distinct("speed", new BasicDBObject("movieName", "Green Mile"));
// iterate through the results list and print the names
for(int i=0;i<results.size();i++){
System.out.println(results.get(i));
}
【讨论】: