Mongodb返回带有查询构建器的空数组

时间:2014-03-12 09:54:32

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

我在集合中有以下文件

{
    "_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;

任何人都可以帮助我查询我的错误。提前谢谢。

2 个答案:

答案 0 :(得分:0)

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

    System.out.println( searchQuery );

打印或记录对象通常可以帮助我看到它正在按我的意愿行事。

答案 1 :(得分:0)

你有拼写错误。

berdRooms 更改为卧室

根据JSON-RPC规范:

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

符合实现必须将过程和参数名称视为区分大小写,例如名称栏和BAR将被视为两个不同的实体。