Mongodb 使用查询生成器返回空数组
Posted
技术标签:
【中文标题】Mongodb 使用查询生成器返回空数组【英文标题】:Mongodb returns empty array with query builder 【发布时间】: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;
任何人都可以帮我解决我的查询有什么问题吗?提前致谢。
【问题讨论】:
【参考方案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 将被视为两个不同的实体。
【讨论】:
以上是关于Mongodb 使用查询生成器返回空数组的主要内容,如果未能解决你的问题,请参考以下文章