【问题标题】:Mongodb returns empty array with query builderMongodb 使用查询生成器返回空数组
【发布时间】:2014-04-16 08:41:23
【问题描述】:

我收藏了以下文件

{
    "_id" : ObjectId("53202b3644aec3ce32afc40b"),
    "_class" : "com.brand.domain.House",
    "bedrooms" : 2,
    "uid" : "URErlrjldVhW",
    "price" : NumberLong(200),
    "type" : "RENT",
    "address" : " test",
    "details" : " test",
    "rentType" : "perMonth"
}
{
    "_id" : ObjectId("53202b4444aec3ce32afc40c"),
    "_class" : "com.brand.domain.House",
    "bedrooms" : 2,
    "uid" : "SHvPruOJuivg",
    "price" : NumberLong(300),
    "type" : "RENT",
    "address" : " ",
    "details" : " ",
    "rentType" : "perMonth"
}

使用查询生成器进行以下查询,它返回空数组

我的输入值是

type : RENT
maxPrice : 5000
minPrice : 100
bedRooms : 2

还有查询

Query query = new Query(
    where("type")
    .is(form.getType())
    .and("price")
    .lte(form.getMaxPrice())
    /*.gte(form.getMinPrice())*/
    .and("bedRooms")
    .is(form.getMinBedRooms()));

以下是表单字段

private String type;
private long minPrice;
private long maxPrice;
private int minBedRooms;

任何人都可以帮我解决我的查询有什么问题吗?提前致谢。

【问题讨论】:

    标签: mongodb mongodb-query query-builder mongodb-java


    【解决方案1】:

    “查询”不是 sping 数据类吗?那么:

        Query searchQuery = new Query(Criteria.where("type")
                .is("RENT")
                .and("price")
                .lte(5000)
                .and("bedrooms")
                .is(2));
    
        System.out.println( searchQuery );
    

    打印或记录对象通常可以帮助我看到它正在做我想做的事情。

    【讨论】:

      【解决方案2】:

      你有一个拼写错误。

      berdRooms 更改为 卧室

      根据 JSON-RPC 规范:

      6.5。过程和参数名称区分大小写

      一致的实现必须将过程和参数名称视为区分大小写,这样名称 bar 和 BAR 将被视为两个不同的实体。

      【讨论】:

        猜你喜欢
        • 2016-03-24
        • 1970-01-01
        • 1970-01-01
        • 2015-03-26
        • 1970-01-01
        • 2016-12-17
        • 1970-01-01
        • 2023-04-03
        • 2014-04-22
        相关资源
        最近更新 更多