0

您好,我有一个名为 Movies 的集合,其结构如下

电影{ Title, Id, Characters[ {Character_name , actor_id} ] }

我正在尝试使用相应的actor_idID(电影)查询特定的 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);

    }   
}
4

0 回答 0