Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用具有和关系的2个条件查询MongoDB_Java_Mongodb_Spring Boot_Criteria - Fatal编程技术网

Java 如何使用具有和关系的2个条件查询MongoDB

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

在我的spring boot项目中,我使用的是MongoTemplate

我的mongo文件如下所示:-

[
{
    "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")

对的太多了!