आपको पुनर्प्राप्त फ़ील्ड को findOne विधि के दूसरे पैरामीटर के रूप में देने की आवश्यकता है
BasicDBObject retrievedField = new BasicDBObject();
retrievedField.put("_id",0);
dbcoll.findOne(query, retrievedField);
इसके अलावा यदि आप अपने द्वारा दिखाई गई सटीक क्वेरी को पुनः प्राप्त करना चाहते हैं, तो मुझे लगता है कि आपको elemMatch ऑब्जेक्ट को क्वेरीऑब्जेक्ट में जोड़ने के बजाय पुनर्प्राप्त फ़ील्ड में जोड़ना होगा।
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);