mongoTemplate简单用法(增删改查)
分页时查找数量:
public long countSample(String id) {
Query query = new Query();
if (StringUtil.hasText(id))
query.addCriteria(Criteria.where("creator").is(id));
return mongoTemplate.count(query, Sample.class);
}
分页:
public List<Sample> searchAllSample(String id, PageTag page) {
Query query = new Query();
query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "update_date")));
int skip = (page.getCurrentPage() - 1) * page.getPageSize();
if (StringUtil.hasText(id)) {
Criteria criteria = Criteria.where("creator").is(id);
query.addCriteria(criteria);
}
query.skip(skip);// 从那条记录开始
query.limit(page.getPageSize());// 取多少条记录
return mongoTemplate.find(query, Sample.class);
}
修改数量:
public void modifyHitNumByNo(String no) {
Query query = new Query();
query.addCriteria(Criteria.where("sap_no").is(no));
Update update = new Update();
update.inc("hit_num", 1);
mongoTemplate.updateFirst(query, update, Project.class);
}
模糊查询:
public List<Sample> findSamples(String memberId, SelectVo selectVo) {
Criteria criteria = Criteria.where("creator").is(memberId);
if (StringUtil.hasText(selectVo.getName())) {
Pattern pattern = Pattern.compile("^.*" + selectVo.getName() + ".*$", Pattern.CASE_INSENSITIVE);
criteria.orOperator(Criteria.where("projectNo").regex(pattern), Criteria.where("name").regex(pattern));
}
return findPageList(Query.query(criteria), Sample.class, new PageTag(selectVo.getPage(), selectVo.getPageSize()));
}
一般查询:
public List<Project> getProjects(String creator) {
Query query = new Query();
if (StringUtil.hasText(creator)) {
Criteria criteria = Criteria.where("creator").is(creator);
query.addCriteria(criteria);
}
return mongoTemplate.find(query, Project.class);
}
public Experiment getExperimentByExpNo(String expNo) {
Query query = new Query();
Criteria criteria = Criteria.where("exp_no").is(expNo);
query.addCriteria(criteria);
return mongoTemplate.findOne(query, Experiment.class);
}
public void saveOrUpdateExperiment(Experiment experiment) {
if (StringUtil.hasText(experiment.getExpNo())) {
Query query = new Query();
Criteria criteria = Criteria.where("exp_no").is(experiment.getExpNo());
query.addCriteria(criteria);
Experiment exp = mongoTemplate.findAndRemove(query, Experiment.class);
experiment.setCreator(exp.getCreator());
experiment.setCreateDate(exp.getCreateDate());
}
mongoTemplate.save(experiment);
}
mongoTemplate简单用法(增删改查)的更多相关文章
- salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)
此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- 通过JDBC进行简单的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- MyBatis简单的增删改查以及简单的分页查询实现
MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...
- 初试KONCKOUT+WEBAPI简单实现增删改查
初试KONCKOUT+WEBAPI简单实现增删改查 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作.Kn ...
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...
- SpringMVC之简单的增删改查示例(SSM整合)
本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
1.通过 pip 安装 pymysql 进入 cmd 输入 pip install pymysql 回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...
- 通过flask实现web页面简单的增删改查bootstrap美化版
通过flask实现web页面简单的增删改查bootstrap美化版 项目目录结构 [root@node1 python]# tree -L 2 . ├── animate.css ├── fileut ...
- 通过flask实现web页面简单的增删改查
通过flask实现web页面简单的增删改查 # 1.后台程序falsk_web01.py #coding:utf-8 from flask import Flask,render_template,r ...
随机推荐
- linq distinct 不够用了!
问题引出:在实际中遇到一个问题,要进行集合去重,集合内存储的是引用类型,需要根据id进行去重.这个时候linq 的distinct 就不够用了,对于引用类型,它直接比较地址.测试数据如下: class ...
- iOS中多线程常用的知识点
1.pThread 跨平台的多线程技术 , 是IEEE制定的POSIX 表示可移植性操作系统接口的多线程计数,UNIX内核平台 Unix,Linux,Mac(小红帽) (windows上有可移 ...
- bzoj4591 【Shoi2015】超能粒子炮·改
由Lucas定理C(n,k)=C(n/2333,k/2333)*C(n%2333,k%2333)%2333 则ans=ΣC(n,i),(i<=k) =C(n/2333,0)*C(n%2333, ...
- gulp同步执行任务
使用插件:gulp-sync,npm install --save-dev gulp-sync 使用方法参考:https://www.npmjs.com/package/gulp-sync 这些插件也 ...
- 关于LuCi
好吧,又长见识了...相见恨晚的赶脚,恩,居然是我喜欢的lua.其主页在这里:http://luci.subsignal.org/ The initial reason for this projec ...
- VisualStudio配色方案
最近发现一个很神奇的网站,可以方便的为VisualStudio配色:Studio Styles - Visual Studio color schemes 可以下载一份自己喜欢的配色方案 如果还不满意 ...
- Node实践之一
大家都知道JavaScript的专长就是处理客户端也就是与浏览器打交道了,所有的与服务器端的交互必须交给后台语言处理程序去做,基于JavaScript不能与服务器进行直接交互这样一个现状,Ryan D ...
- 工作中的一些JS--为网页动态添加元素,类似于邮箱添加联系人的功能
项目中要解决一个为下拉框动态添加选项的问题,之前从网上搜到结果,写个JS函数 //先新建元素,并添加属性 var option = document.createElement("optio ...
- [Unity3D]引擎学习之注意事项(持续更新中)
调试相关 如果是想在触发粒子系统效果的时候播放声音(比如爆炸的特殊发生时也播放声音),则需要将爆炸效果的粒子系统保持为Prefab后,添加Audio Source组件,在组件中添加声音文件并且确保pl ...
- thinkphp标签
1.volist标签 随后一条不一样的输出<volist name="pagehead" id="vo"> <if condition=&qu ...