Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Агрегация в MongoRepository / 11 сообщений из 11, страница 1 из 1
06.05.2020, 13:43
    #39954577
serega063
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
Всем привет!

Изучаю SpringData+MongoDB(чую зря)

Есть родитель

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
@NoArgsConstructor
@Builder(toBuilder = true)
@EqualsAndHashCode
@Data
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@org.springframework.data.mongodb.core.mapping.Document(collection = "contractor")
public class Contractor extends AbstractAuditingEntity implements Serializable  {

    @Id
    private String id;

    @NotNull
    @Indexed
    private String name;


    @NotNull
    private List<Project> projects;
  
}



и есть его child, я так понимаю он не должен быть @Document
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
@NoArgsConstructor
@Builder(toBuilder = true)
@EqualsAndHashCode
@Data
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class Project extends AbstractAuditingEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    private String id;

    @NotNull
    @Indexed
    private String name;



}



Вопрос!
Как мне получить все Project по всем Contractor

Заранее благодарен
...
Рейтинг: 0 / 0
06.05.2020, 13:50
    #39954580
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
А вы читали зачем вообще в проекте применяют MongoDB?

Групповые агрегации это соль и хлеб реляционок
...
Рейтинг: 0 / 0
06.05.2020, 13:52
    #39954581
serega063
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
забыл ник,
Да читал, просто неужели такая простая операция для монги такая проблема?
...
Рейтинг: 0 / 0
06.05.2020, 13:53
    #39954582
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
serega063, монго-документ изначально создают так чтобы агрегаты лежали внтури него. И на этом точка.
...
Рейтинг: 0 / 0
06.05.2020, 13:53
    #39954583
serega063
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
Да и мне не нужна агрегация, мне нужно вытащить всех насоледников
...
Рейтинг: 0 / 0
06.05.2020, 13:54
    #39954585
serega063
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
mayton
serega063, монго-документ изначально создают так чтобы агрегаты лежали внтури него. И на этом точка.


Я так и создал, только теперь не могу достать их
...
Рейтинг: 0 / 0
06.05.2020, 14:02
    #39954587
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
У тебя так?

Код: javascript
1.
2.
3.
4.
5.
6.
var fuckenContractor = {
               _id: ObjectId("???????????????????"),
               id : ???
               name: ???
               projects : [ ...... ]
            }
...
Рейтинг: 0 / 0
06.05.2020, 14:05
    #39954589
serega063
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
mayton,

да
...
Рейтинг: 0 / 0
06.05.2020, 14:22
    #39954599
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
serega063

Как мне получить все Project по всем Contractor


serega063

Я так и создал, только теперь не могу достать их


Какая-то путаница в показаниях.
Смысл концепции noSQLв том чтобы моделировать данные в ненормализованном виде для ускорения некоторых операций. При этом предполагается что вы знаете что делаете и работаете в основном в рамках единой сущности, а не все-ко-всем.
Вы же не обвиняете молоток в том что он пилить не может? В рамках концепции описанной выше MongoDB очень даже хороший молоток, так что удивление непонятно
...
Рейтинг: 0 / 0
06.05.2020, 14:28
    #39954605
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
Есть шикарные примеры SpringData + Mongo которые решают подобный вопрос легче.
Со ссылкой на https://www.devglan.com/spring-boot/spring-boot-mongodb-crud

Без написания эти уродливых ORM-моделей.

Только тебе надо будет напрячся и написать Query.

Типа

Код: java
1.
2.
3.
4.
5.
6.
7.
@Repository
public interface ProjectRepository extends MongoRepository {

    @Query(value = ".... fucken Mongo query here....")
    List<Project> allProjects();

}
...
Рейтинг: 0 / 0
07.05.2020, 04:27
    #39954863
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация в MongoRepository
serega063
Как мне получить все Project по всем Contractor

$unwind (aggregation) плюс $project (aggregation)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Агрегация в MongoRepository / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]