Java 如何使用具有和关系的2个条件查询MongoDB
在我的spring boot项目中,我使用的是MongoTemplate 我的mongo文件如下所示:-Java 如何使用具有和关系的2个条件查询MongoDB,java,mongodb,spring-boot,criteria,Java,Mongodb,Spring Boot,Criteria,在我的spring boot项目中,我使用的是MongoTemplate 我的mongo文件如下所示:- [ { "id": "601183876b7b976bd0a48b03", "name": "Club", "pricePerNight": 90, "address": { "city": "E
[
{
"id": "601183876b7b976bd0a48b03",
"name": "Club",
"pricePerNight": 90,
"address": {
"city": "Espoo",
"country": "Finland"
},
"reviews": [
{
"userName": "Masi",
"rating": 9,
"approved": true
}
]
}
]
在我的服务课上,我试图找到如下内容。我的目标是找到一家城市名称完全匹配且在最高价格范围内的酒店。以下查询未找到任何内容。怎么了
public List<Hotel> findRecommended(int maxPrice, String city){
Query query = new Query()
.addCriteria(Criteria.where("city").is(city)
.andOperator(Criteria.where("pricePerNight").lte(maxPrice)))
.with(Sort.by(Sort.Order.desc("pricePerNight")))
.limit(4);
List<Hotel> result = mongoTemplate.find(query, Hotel.class);
return result;
}
公共列表FindRecommendated(int-maxPrice,字符串城市){
查询=新查询()
.addCriteria(标准)。其中(“城市”)为(城市)
.和运营商(标准,其中(“价格/夜”).lte(最高价格)))
.with(Sort.by(Sort.Order.desc(“pricePerNight”))
.限额(4);
列表结果=mongoTemplate.find(查询,Hotel.class);
返回结果;
}
城市
是地址
对象的一部分
.addCriteria(Criteria.where("city")
应该是
.addCriteria(Criteria.where("address.city")
对的太多了!