массив запросов вложенных документов в весенние данные mongodb - PullRequest
0 голосов
/ 15 февраля 2019

У меня простой вопрос:

Как мне выразить этот запрос

db.inventory.find( { "instock": { warehouse: "A", qty: 5 } } )

Запрос для документа, вложенного в массив

вSpring data mongoDB, предпочтительно с использованием QueryDSL, но приветствуются и другие способы.

Пока все мои запросы соответствуют полям любого встроенного документа в массиве, но мне нужно сопоставить оба на одном и том же.

1 Ответ

0 голосов
/ 19 февраля 2019

Используя репозиторий Spring Data, вы можете использовать:

1 - аннотация @Query

@Query("{ 'instock': { 'warehouse': ?0, 'qty': ?1 } }")
List<YourClass> findByInstock(String warehouse, int qty);

2 - Реализация пользовательского метода репозитория

List<YourClass> findByInstock(String warehouse, int qty) {
  return mongoTemplate.find(Query.query(Criteria.where("instock").elemMatch(Criteria.where("warehouse").is(warehouse).and("qty").is(qty)));

Вы можете найтибольше материала здесь о том, как реализовать этот метод.}

...