Как я могу построить этот "запрос" crud в mongoDB? - PullRequest
0 голосов
/ 06 июня 2019

У меня есть эта структура в моем mongoDB ->

db.Article.save({"_id":ObjectId("90e"),"idPromotion":1,"numArticulos":"3","anyArticle":[{"name":"chair","color":"rojo","price":"10€"},{"name":"table","color":"azul","price":"2€"}],"recibe":"monday"}

db.Article.save({"_id":ObjectId("91e"),"idPromotion":2,"numArticulos":"1","anyArticle":[{"name":"pencil","color":"black","price":"1€"}],"recibe":"monday"}

db.Article.save({"_id":ObjectId("92e"),"idPromotion":3,"numArticulos":"1","anyArticle":[{"name":"car","color":"white","price":"1000€"}],"recibe":"monday"}

Действительно для этого примера мне нужно только 1. Особое внимание с моим массивом "anyArticle": пожалуйста.

Я использую SpringBoot --->

Модель:

@Document
public class Article{

    private Integer idPromotion; 
    private AnyArticle anyArticle[]; 

    public Article(){}

    public Article(Integer idPromotion,AnyArticle anyArticle[]){
        this.idPromotion=idPromotion;
        this.anyArticle=anyArticle;
    }
    getters.setter...
 }


 public class AnyArticle {
  private String name; 
  private String color; 
  private String price; 

  constructor, getter, setters...
 }

Я реализую этот интерфейс в моем сервисеImpl

@Repository
public interface ArticleRepository extends CrudRepository<Article, String> {

}

Наконец-то мой сервисImpl ->

 @Autowired
 private ArticleRepository repo;
 ...

 List<Article> list = (List<Article>) repo.findAll();

Я знаю

public interface ArticleRepository extends CrudRepository<Article, String> {
   public List<Article> findByIdPromotion(Integer idPromotion); 
   I get the register with IdPromotion "x"
   or
   public List<Article>  findByRecibe(String Recibe); 
}

Моя проблема в том, что когда я пытаюсь получить

  public List<Article> findByAnyArticle.name (String name);` 

, я получаю ошибку в своем Eclipse рядом с "."Я не могу использовать @Query, потому что это mongoDB, тогда как мне отфильтровать имя или что-то в моем классе AnyArticle ??спасибо

Редактировать , например, я пишу

public List<Article> findByAnyArticle.name (String name)

имя это стул, тогда я хочу этот объект ->

{"_id":ObjectId("90e"),"idPromotion":1,"numArticulos":"3","anyArticle":[{"name":"chair","color":"rojo","price":"10€"},{"name":"table","color":"azul","price":"2€"}],"recibe":"monday"}

Я хочу, чтобы все объекты, потому что в любой статье есть имя с "стул".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...