通过使用以下代码,我可以获取具有相同first_name的客户对象的列表,但是对于我的下一个操作,我只需要所有提取的客户中的customerID
s,相反,我只会得到第一个为所有对象提取了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());
}