Используя следующий код, я могу получить список объектов клиентов, имеющих то же имя, но для моей следующей операции мне нужно только customerID
всех выбранных клиентов, вместо этого я получаю только первый выбранный customerID
для всех объектов. Может кто-нибудь, пожалуйста, помогите?
MongoClientURI uri = new MongoClientURI("mongodb+srv://sumitraojha:<pwd>@cluster0-tkx83.mongodb.net/customer?retryWrites=true&w=majority");
MongoClient mongoClient = new MongoClient(uri);
System.out.println("The connection to mongoDB is established");
//MongoDB Customer Database connection
MongoDatabase cust_database = mongoClient.getDatabase("customer");
System.out.println("The connection to Database\t"+cust_database.getName()+"\tis established successfully");
//System.out.println("the database is "+cust_database.getName());
//Displaying the Queried Document
System.out.println("\n Enter the customer Name to search:\n ");
Scanner sc = new Scanner(System.in);
String fname = sc.next();
System.out.println("\n The Customer Details are:");
MongoCollection<Document> newcustDetails = cust_database.getCollection("NewCustomerDetails");
MongoCursor<Document> custcursor1 = newcustDetails.find(eq("first_name", fname)).iterator();
//System.out.println(custcursor1);
ArrayList<String> value = new ArrayList<String>();
try {
while(custcursor1.hasNext())
{
System.out.println("\n"+custcursor1.next().toJson());
String temp = newcustDetails.find().projection(Projections.include("CustomerID")).first().getString("CustomerID");
System.out.println(temp);
value.add(temp);
}
}
finally {
// TODO: handle finally clause
custcursor1.close();
}
System.out.println("\n The Customer ID are:\t\t");
Iterator<String> i1=value.iterator();
while(i1.hasNext())
{
System.out.println(i1.next());
}
это вывод, который я получаю