2016-05-05 3 views
0

я хранюсь данными в MongoDB в User Collection в нижеуказанном форматесписка запросов на основе значения входного списка

{ 
    "_id" : ObjectId("571ded1a1b8bd2c34aaf3c4a"), 
    "_class" : "com.unisys.workbench.domain.User", 
    "userName" : "admin", 
    "password" : "admin", 
    "email" : "[email protected]", 
    "contact1" : "9889482416", 
    "contact2" : "1234567890", 
    "roles" : [ 
     { 
      "roleName" : "ROLE_ADMIN" 
     } 
    ] 
} 

своенравных данных на основе RoleName я написал ниже Query

List<User> users= mongoTemplate.find(new Query().addCriteria(Criteria.where("roles.$roleName").is(role)), 
        User.class); 

Но его всегда возвращается нуль ,

Для электронной почты ниже запроса работает нормально

mongoTemplate.findOne(new Query().addCriteria(Criteria.where("email").is(email)), 
        User.class); 
+0

Пожалуйста, форматировать код как код, нажав на кнопку '{}' в строке в редакторе. – Oisin

ответ

0

Что такое $ за? Оно должно быть:

List<User> users= mongoTemplate.find(new Query().addCriteria(Criteria.where("roles.roleName").is(role)), 
       User.class); 
+0

$ Я использовал для элемента Sub. –

+0

Спасибо, что много работает –

Смежные вопросы