Как исключить вложенные поля из MongoDB с помощью spring-boot?

#java #mongodb #spring-boot #api #backend

Вопрос:

У меня есть документ MongoDB, который выглядит так:

 [
    {
        "id": 1,
        "name": "abc",
        "class": "top-level",
        "subClass": [
            {
                "id": 1,
                "name": "def",
                "class": "second-level"
            }
        ]
    },
    {
        "id": 2,
        "name": "xyz",
        "class": "top-level",
        "subClass": [
            {
                "id": 1,
                "name": "def",
                "class": "second-level"
            }
        ]
    }
]
 

Я хочу исключить это поле id как из класса верхнего уровня, так и из класса второго уровня. Я попробовал сделать несколько запросов, но так как я новичок в этом, я не могу понять это. Пожалуйста, помогите. Спасибо

Ответ №1:

Вы просто хотите использовать опцию проекции для запроса и исключить поля «нет», например:

 db.collection.find({},
{
  id: 0,
  "subClass.id": 0
})
 

Игровая площадка Монго

Ответ №2:

 @Query(value = "{}", fields = "{'id':0, 'subClass.id':0}")
 

Это решило мою проблему. Спасибо за помощь