Получить только вложенный объект из MongoDB с помощью Spring Data mongoDb или mongo template - PullRequest
0 голосов
/ 01 июня 2018
{
    "_id" : "a9582f59-f52b-4fc8-84ab-cdd0bfb8dead",
    "_class" : "com.db.Category",
    "name" : "Cricket",
    "subCategories" : [
        {
            "name" : "Gloves",
            "creationDate" : NumberLong("1527404341099"),
            "modificationDate" : NumberLong("1527404341099")
        },
        {
            "name" : "Stumps",
            "creationDate" : NumberLong("1527404369882"),
            "modificationDate" : NumberLong("1527404369882")
        },
        {
            "name" : "Bat",
            "brandList" : [
                {
                    "name" : "MRF",
                    "productDetails" : [
                        {
                            "name" : "Bat 111",
                            "price" : "1224",
                            "imageUrlList" : [
                                "https://s3.us-east-1.amazonaws.com/gasports/1527792222680-Bat_111",
                                "https://s3.us-east-1.amazonaws.com/gasports/1527792228375-Bat_111"
                            ]
                        }
                    ]
                }
            ],
            "creationDate" : NumberLong("1527424021629"),
            "modificationDate" : NumberLong("1527424021629")
        }
    ],
    "creationDate" : NumberLong("1527404340938"),
    "modificationDate" : NumberLong("1527404340938")
}

Это документ категории.У категории есть подкатегория, у Подкатегории есть бренды, и у Бренда есть продукты.

@Document(collection="productInfo")
public class Category extends BaseProductInfo<Category> {

@Id
private String uid;

private String name;

private List<SubCategory> subCategories;

// Получатели и сеттеры ..

Теперь я должен получить только для определенной подкатегории или Бренда или Продукта.Для этого в настоящее время я делаю итерацию для получения объекта.

Есть ли какой-нибудь способ в Spring Data Mongo Repository получить вложенный объект?

1 Ответ

0 голосов
/ 01 июня 2018

Вы можете написать такой метод в своем классе репозитория категорий

Category findBySubCategories_BrandList_ProductDetails_Name(String name)

Просто введите название продукта, который вы хотите получить.spring-data-mongodb сформулирует запрос на основе вашего имени встречи и выберет документы, соответствующие запросу.

...