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

Mongodb 使用SpringJPA从Mongo集合中的子文档列表中获取数据,mongodb,spring-data-jpa,spring-mongodb,Mongodb,Spring Data Jpa,Spring Mongodb,下面是我的Mongo集合数据结构示例 { "id": "5d91fe25da1917111182ce5a", "customName": "Chess Application", "status":"not_ready", "environments": [ { "environmentId": "6bbbbda6-b01a-4b9e-99d5-a1d0f696449a", "environmentName": "D

下面是我的
Mongo集合
数据结构示例

{
    "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
获取数据。。我将只获取
环境ID
作为输入,我将扫描所有集合并获取具有此
环境ID的集合

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

我使用了
findByEnvironmentsIsIn()
方法,它没有帮助。你知道如何从子文档列表中只获取一个对象吗?

@Query(“{'environments':{$elemMatch:{'environmentId':{$in:?0}}}”)
@Query("{'environments' : { $elemMatch: { 'environmentId': { $in: ?0 }}}}")
List<Object> findByEnvironmentsIsIn( Set<String> environmentIds); 
列出FindByenEnvironmentSisin(设置环境ID);
我想这应该适合你