以下查询不适用于mongo存储库-
@Query(value = "{ 'items' : {$elemMatch : {'attributes' : {$all : [/^?0/i]}}}}")
List<MenuEntity> findMenuByItemAttribute(String attrName);
问题似乎是我在哪里传递?注解中的0。我需要在某处传递报价吗?
db.menus.find({ 'items' : {$elemMatch : {'attributes' : {$all : [/^sav/i]}}}})
上面的查询在mongoshell中返回结果
文件结构-
db.menus.findOne()
{
"_id" : ObjectId("5cf25412326c3f4f26df039b"),
"restaurantId" : "301728",
"items" : [
{
"itemId" : "CEBM4H41JR",
"name" : "Crun Chicken",
"imageUrl" : "",
"price" : 572,
"attributes" : [
"Tasty",
"Spicy"
]
},
{
"itemId" : "53Q0XS3HPR",
"name" : "Devils Chicken",
"imageUrl" : "",
"price" : 595,
"attributes" : [
"Gravy",
"Salty"
]
}
}
1条答案
按热度按时间wwwo4jvm1#
不必自己编写mongo查询。您可以扩展mongorepository并使用派生查询,只需在接口中定义您的方法,如: