Spring Data с запросом mongodb для вывода некоторых элементов из массива - PullRequest
1 голос
/ 21 апреля 2020

Я пытаюсь перенести несколько элементов из массива в объект, но в результате получается только один элемент из этого массива. Я хочу принести несколько элементов из этого массива.

У меня есть:

{
"title": "market",
"products": [
             {"name": "pepperoni pizza"},
             {"name": "mozzarella pizza"},
             {"name": "yogurt"},
             {"name": "soda"},
            ] 
}

И:

Query query = new Query();
        query.fields().elemMatch("products", Criteria.where("name").regex("pizza", "i"))
                .include("products")
                .include("title");
        mongoTemplate.find(query, Business.class);

Результат:

{
"title": "market",
"products": [
             {"name": "pepperoni pizza"}
            ] 
}

Но я хочу:

{
"title": "market",
"products": [
             {"name": "pepperoni pizza"},
             {"name": "mozzarella pizza"}
            ] 
}

1 Ответ

1 голос
/ 22 апреля 2020

не может помочь с версией данных Spring, но это запрос mon go, который он должен генерировать:

db.collection.aggregate([
    {
        $match: {
            'products.name': /pizza/i
        }
    },
    {
        $set: {
            products: {
                $filter: {
                    input: "$products",
                    cond: { $regexMatch: { input: "$$this.name", regex: /pizza/i } }
                }
            }
        }
    }
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...