findOneメソッドの2番目のパラメーターとして取得したフィールドを指定する必要があります
BasicDBObject retrievedField = new BasicDBObject();
retrievedField.put("_id",0);
dbcoll.findOne(query, retrievedField);
また、表示した正確なクエリを取得する場合は、クエリオブジェクトに追加するのではなく、elemMatchオブジェクトをretrieveFieldsに追加する必要があると思います。
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);