您好,我有一个名为 Movies 的集合,其结构如下
电影{ Title, Id, Characters[ {Character_name , actor_id} ] }
我正在尝试使用相应的actor_id
ID(电影)查询特定的 Character_name。如果没有完整的电影角色列表,这怎么可能?例如,我希望每个Character_name
Brad Pitt都以 ArrayList 的形式播放每部电影。
这是我从电影中创建标题的 ArrayList 的代码,如何更改它以获取单个角色名称?
public static ArrayList popTitle() {
ArrayList myList = new ArrayList();
MongoClient mongoClient = new MongoClient(new ServerAddress(
"localhost", 27017));
DB db = mongoClient.getDB("test");
BasicDBObject query = new BasicDBObject();
query.put("Characters.actor_id", "162684857");
DBCollection myCollection = db.getCollection("Movies");
DBCursor cursor = myCollection.find(query);
while (cursor.hasNext()) {
DBObject theObj = cursor.next();
BasicDBObject title = (BasicDBObject) theObj;
String t = title.getString("title");
myList.add(t);
}
Set<String> s = new LinkedHashSet<>(myList);
myList.clear();
myList.addAll(s);
for (int i = 0; i < myList.size(); i++) {
System.out.println(myList.get(i));
}
return myList;
}
这是我到目前为止所拥有的。查询结果为空。
public static void popCharacter() {
ArrayList myList = new ArrayList();
MongoClient mongoClient = new MongoClient(new ServerAddress(
"localhost", 27017));
DB db = mongoClient.getDB("test");
DBCollection myCollection = db.getCollection("Movies");
BasicDBObject query = new BasicDBObject();
query.put("id", "10015");
query.put("Characters.actor_id", "162684857");
DBCursor cursor = myCollection.find(query);
while (cursor.hasNext()) {
DBObject theObj = cursor.next();
BasicDBObject title = (BasicDBObject) theObj;
String t = title.getString("Characters.Character_name");
System.out.println(t);
}
}