使用 Spring JPA 从 Mongo 集合中的子文档列表中获取数据
Get data from list of Sub documents in Mongo collection using Spring JPA
下面是我的 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
[ 的集合=21=]
注意:这里的Environment-id
不是mongo-created
ID。它是我的 Java 应用程序在插入期间生成的 UUID
我使用了 findByEnvironmentsIsIn()
方法,但没有帮助。知道如何从子文档列表中只获取一个对象吗?
@Query("{'environments' : { $elemMatch: { 'environmentId': { $in: ?0 }}}}")
List<Object> findByEnvironmentsIsIn( Set<String> environmentIds);
我想这应该适合你
下面是我的 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
[ 的集合=21=]
注意:这里的Environment-id
不是mongo-created
ID。它是我的 Java 应用程序在插入期间生成的 UUID
我使用了 findByEnvironmentsIsIn()
方法,但没有帮助。知道如何从子文档列表中只获取一个对象吗?
@Query("{'environments' : { $elemMatch: { 'environmentId': { $in: ?0 }}}}")
List<Object> findByEnvironmentsIsIn( Set<String> environmentIds);
我想这应该适合你