這裏是你的shell的Java驅動程序查詢查詢
MongoClient mongo = new MongoClient();
MongoDatabase database = mongo.getDatabase("your_database");
Document emailIdDoc = new Document("$ifNull",Arrays.asList("$email_id", " "));
Document phoneNumDoc = new Document("$ifNull", Arrays.asList("$phone_num", "NA"));
Document projectDoc = new Document("$project" , new Document("email_id", emailIdDoc).append("phone_num", phoneNumDoc).append("id" , 1).append("firstname" , 1).append("lastname", 1).append("status", 1));
Document matchDoc = new Document("$match", new BasicDBObject("status", "true"));
Document groupDoc = new Document("$group", new Document("_id", "$id").append("details", new Document("$push", concat)));
AggregateIterable<Document> aggregationResult = db.getCollection("your_collection").aggregate(asList(projectDoc, matchDoc, groupDoc));
隨着過時的方法
MongoClient mongo = new MongoClient();
DB db = mongo.getDB("your_database");
BasicDBObject emailId = new BasicDBObject("$ifNull",Arrays.asList("$email_id", " "));
BasicDBObject phoneNum = new BasicDBObject("$ifNull", Arrays.asList("$phone_num", "NA"));
DBObject project = new BasicDBObject("$project" , new BasicDBObject("email_id", emailId).append("phone_num", phoneNum).append("id" , 1).append("firstname" , 1).append("lastname", 1).append("status", 1));
DBObject match = new BasicDBObject("$match", new BasicDBObject("status", "true"));
DBObject concat = new BasicDBObject("$concat", Arrays.asList("$firstname", " ", "$lastname", " | ", "$email_id" , " | ", "$phone_num"));
Document concatDoc = new Document("$concat", Arrays.asList("$firstname", " ", "$lastname", " | ", "$email_id" , " | ", "$phone_num"));
DBObject group = new BasicDBObject("$group", new BasicDBObject("_id", "$id").append("details", new BasicDBObject("$push", concat)));
AggregationOutput iterable = db.getCollection("your_collection").aggregate(project, match, group);
請張貼在這裏,你已經嘗試什麼 –