java - 如何从编号列表中取回一本书?

标签 java mongodb

如您所见,我正在尝试从我在 MongoDB 中创建的图书编号列表中获取一本书。我可以从数据库中很好地取回书籍,但是当我尝试提取列出该书籍的编号时,我不能,因为这一行:

bookNum = book.get(选择 - 1);

下面列出了我的代码以供您引用。任何帮助将不胜感激。

//Find a book in the bookInfo database
    Scanner input = new Scanner(System.in);
    System.out.print("Enter the Title of a Book: ");
    String book = input.nextLine();
    int referenceNum = 0;
    BasicDBObject query = new BasicDBObject();
    query.put("Title", 
            new BasicDBObject("$regex", book)
            .append("$options", "i"));
    MongoCursor<Document> cursor = collection.find(query).iterator();

    while(cursor.hasNext()) {
        Document bookInfo = cursor.next();
        referenceNum++;
        System.out.println(referenceNum + ")" + bookInfo.getString("Title"));

    }
    System.out.print("\nEnter selection number (0 to quit): ");
    Scanner inp = new Scanner(System.in);
    int choice = inp.nextInt();
    String bookNum;
    // choice not 0 and not too high
    if(choice > 0 && choice <= referenceNum) {
        bookNum = book.get(choice - 1);
    }
    else {
        bookNum = "0";
    }
}

最佳答案

问题:从数据库获取的图书列表未存储在任何地方

以下是更新后的代码:

// Find a book in the bookInfo database
Scanner input = new Scanner(System.in);
System.out.print("Enter the Title of a Book: ");
String book = input.nextLine();
int referenceNum = 0;
BasicDBObject query = new BasicDBObject("Title", new BasicDBObject("$regex", book).append("$options", "i"));
MongoCursor<Document> cursor = collection.find(query).iterator();
List<String> books = new ArrayList<>();

while (cursor.hasNext()) {
    Document bookInfo = cursor.next();
    referenceNum++;
    System.out.println(referenceNum + ")" + bookInfo.getString("Title"));
    books.add(bookInfo.getString("Title"));
}

System.out.print("\nEnter selection number (0 to quit): ");
int choice = input.nextInt();
String bookNum;

// choice not 0 and not too high
if (choice > 0 && choice <= referenceNum) {
    bookNum = books.get(choice - 1);
} else {
    bookNum = "0";
}

// Closing the scanner
input.close();

关于java - 如何从编号列表中取回一本书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57836287/

相关文章:

java - java中的对象身份哈希码

arrays - Mongodb 如何删除/清除另一个数组中的数组

mongodb - 如何使用 mongodb 解决唯一索引中缺失值的问题?

javascript - 是否可以在 javascript 执行中写入 mongodb 控制台?

java - 将属性添加到 Maven 原型(prototype)

java - 获取所有导航元素并单击每个导航链接

java - 从数据库中只公开几个表的最佳方法是什么?

javascript - Meteor 本地服务器可以访问数据库,但客户端不能

node.js - 如何修复 "MongoError: database names cannot contain the character '/' "

java - 存在可选的长参数,但不能转换为空值