没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
4页
本意是想查查mongo数据库的int类型的like怎么查,但是好像没 解决这个问题。 精确查询;模糊查询;分页查询,每页多少:按某个字段排序(或升或降):查询数量:大于,小于,等于;且,或,某个字段不为空,某个字段不存在,查询在某个范围内,删除等等查询。 一. 常用查询: 1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is 精确匹配,模糊匹配 使用regex…) public PageUrl getByUrl(String url) { return findOne(new Query(Criteria.where("url").is(url)),PageUrl.
资源推荐
资源详情
资源评论
Java操作操作mongodb的模糊查询和精确查询的模糊查询和精确查询
本意是想查查mongo数据库的int类型的like怎么查,但是好像没 解决这个问题。
精确查询;模糊查询;分页查询,每页多少:按某个字段排序(或升或降):查询数量:大于,小于,等于;且,或,某个字段
不为空,某个字段不存在,查询在某个范围内,删除等等查询。
一一. 常用查询常用查询:
1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is 精确匹配,模糊匹配 使用regex…)
public PageUrl getByUrl(String url) {
return findOne(new Query(Criteria.where("url").is(url)),PageUrl.class);
}
2. 查询多条数据:linkUrl.id 属于分级查询
public List<PageUrl> getPageUrlsByUrl(int begin, int end,String linkUrlid) {
Query query = new Query();
query.addCriteria(Criteria.where("linkUrl.id").is(linkUrlid));
return find(query.limit(end - begin).skip(begin), PageUrl.class);
}
3.模糊查询:—–关键字—regex
public long getProcessLandLogsCount(List<Condition> conditions)
{
Query query = new Query();
if (conditions != null && conditions.size() > 0) {
for (Condition condition : conditions) {
query.addCriteria(Criteria.where(condition.getKey()).regex(".*?\" +condition.getValue().toString()+ ".*"));
}
}
return count(query, ProcessLandLog.class);
}
最下面,我在代码亲自实践过的模糊查询,只支持字段属性是字符串的查询,你要是查字段属性是int的模糊查询,还真没
辙。
4.gte: 大于等于,lte小于等于…注意查询的时候各个字段的类型要和mongodb中数据类型一致
public List<ProcessLandLog> getProcessLandLogs(int begin,int end,List<Condition> conditions,String orderField,Direction direction)
{
Query query = new Query();
if (conditions != null && conditions.size() > 0) {
for (Condition condition : conditions) {
if(condition.getKey().equals("time")){
query.addCriteria(Criteria.where("time").gte(condition.getValue())); //gte: 大于等于
}else if(condition.getKey().equals("insertTime")){
query.addCriteria(Criteria.where("insertTime").gte(condition.getValue()));
}else{
query.addCriteria(Criteria.where(condition.getKey()).is(condition.getValue()));
}
}
}
return find(query.limit(end - begin).skip(begin).with(new Sort(new Sort.Order(direction, orderField))), ProcessLandLog.class);
}
public List<DpsLand> getDpsLandsByTime(int begin, int end, Date beginDate,Date endDate) {
return find(new Query(Criteria.where("updateTime").gte(beginDate).lte(endDate)).limit(end - begin).skip(begin),
DpsLand.class);
}
查询字段不存在的数据 —–关键字—not
public List<GoodsDetail> getGoodsDetails2(int begin, int end) {
Query query = new Query();
query.addCriteria(Criteria.where("goodsSummary").not());
return find(query.limit(end - begin).skip(begin),GoodsDetail.class);
}
查询字段不为空的数据 —–关键字—ne
weixin_38645133
- 粉丝: 7
- 资源: 964
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页