使用Spring JPA从Mongo集合中的子文档列表中获取数据

时间:2019-10-22 11:45:17

标签: mongodb spring-data-jpa spring-mongodb

下面是我的Mongo-collection数据结构的示例

{
    "id": "5d91fe25da1917111182ce5a",
    "customName": "Chess Application",
    "status":"not_ready",
    "environments": [
        {
        "environmentId": "6bbbbda6-b01a-4b9e-99d5-a1d0f696449a",
        "environmentName": "Dev",
        "environmentType": "dev",

        },
        {
        "environmentId": "3b958d27-8fb7-4edd-bbb0-1dd86437d313",
        "environmentName": "qa",
        "environmentType": "qa",

        }
    ]    
}

我正在使用spring-JPA来获取数据。我将仅获取environmentId作为输入,并且我将扫描所有集合并获取具有此environmentId

注意:此处的Environment-id不是mongo-created ID。它是我的Java应用在插入过程中生成的UUID

我使用了findByEnvironmentsIsIn()方法,但没有帮助。关于如何仅从子文档列表中获取一个对象的任何想法吗?

1 个答案:

答案 0 :(得分:2)

@Query("{'environments' : { $elemMatch: { 'environmentId': { $in: ?0 }}}}")
List<Object> findByEnvironmentsIsIn( Set<String> environmentIds); 

我想这应该对您有用