Bạn cần cung cấp các trường đã truy xuất làm tham số thứ hai của phương thức findOne
BasicDBObject retrievedField = new BasicDBObject();
retrievedField.put("_id",0);
dbcoll.findOne(query, retrievedField);
Ngoài ra, nếu bạn muốn truy xuất chính xác truy vấn mà bạn đã hiển thị, tôi nghĩ bạn cần phải nối đối tượng elemMatch vào các Trường đã truy xuất thay vì thêm nó vào queryObject.
BasicDBObject eleMatch = new BasicDBObject();
eleMatch.put("cityName","A");
BasicDBObject up = new BasicDBObject();
up.put("$elemMatch",eleMatch);
retrievedField.append(up);
BasicDBObject query = new BasicDBObject();
query.put("name","abc");
DBCollection dbcoll = mongoTemplate.getCollection("sample");
DBObject object = dbcoll.findOne(query, retrievedField);