我有一个简单的问题:
如何表达此查询
db.inventory.find( { "instock": { warehouse: "A", qty: 5 } } )
Query for a Document Nested in an Array
在春季数据mongoDB中,最好使用QueryDSL,但也欢迎其他方式。
到目前为止,我所有的查询都匹配数组中任何嵌入式文档上的字段,但我需要在同一字段上将它们都匹配。
答案 0 :(得分:2)
使用Spring Data存储库,您可以使用:
@Query("{ 'instock': { 'warehouse': ?0, 'qty': ?1 } }")
List<YourClass> findByInstock(String warehouse, int qty);
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)));
您可以找到有关如何实现此方法的更多材料here。 }