查询 spring 数据 mongodb 中嵌入文档的数组
query array of embedded documents in spring data mongodb
我有一个简单的问题:
如何表达这个查询
db.inventory.find( { "instock": { warehouse: "A", qty: 5 } } )
Query for a Document Nested in an Array
在 spring 数据 mongoDB 中,最好使用 QueryDSL,但也欢迎使用其他方式。
到目前为止,我所有的查询都与数组中任何嵌入文档的字段匹配,但我需要在同一个上匹配这两个字段。
使用 Spring 数据存储库,您可以使用:
1 - @Query 注释
@Query("{ 'instock': { 'warehouse': ?0, 'qty': ?1 } }")
List<YourClass> findByInstock(String warehouse, int qty);
2 - 自定义存储库方法实现
List<YourClass> findByInstock(String warehouse, int qty) {
return mongoTemplate.find(Query.query(Criteria.where("instock").elemMatch(Criteria.where("warehouse").is(warehouse).and("qty").is(qty)));
您可以找到更多关于如何实施此方法的 material here。
}
我有一个简单的问题:
如何表达这个查询
db.inventory.find( { "instock": { warehouse: "A", qty: 5 } } )
Query for a Document Nested in an Array
在 spring 数据 mongoDB 中,最好使用 QueryDSL,但也欢迎使用其他方式。
到目前为止,我所有的查询都与数组中任何嵌入文档的字段匹配,但我需要在同一个上匹配这两个字段。
使用 Spring 数据存储库,您可以使用:
1 - @Query 注释
@Query("{ 'instock': { 'warehouse': ?0, 'qty': ?1 } }")
List<YourClass> findByInstock(String warehouse, int qty);
2 - 自定义存储库方法实现
List<YourClass> findByInstock(String warehouse, int qty) {
return mongoTemplate.find(Query.query(Criteria.where("instock").elemMatch(Criteria.where("warehouse").is(warehouse).and("qty").is(qty)));
您可以找到更多关于如何实施此方法的 material here。 }