MongoTemplate基本操作
本文基于spring boot项目,快速构建项目请参考:https://www.cnblogs.com/lay2017/p/8836273.html
添加mongo依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
配置连接
有密码
spring.data.mongodb.uri=mongodb://name:password@localhost:27017/test
无密码
spring.data.mongodb.uri=mongodb://localhost:27017/test
代码示例
实体类
package cn.lay.mongo.entity;
import org.springframework.data.mongodb.core.mapping.Document;
/**
 * @author lay
 * @date 2018/09/13 14:53
 */
@Document(collection = "user_collection")
public class User {
    private Long id;
    private String name;
    private Integer age;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
service类
package cn.lay.mongo.service;
import cn.lay.mongo.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @author lay
 * @date 2018/09/13 14:54
 */
@Service
public class UserService {
    @Autowired
    private MongoTemplate mt;
    public void saveUser(User user) {
        mt.save(user);
    }
    public void removeUser(User user) {
        Query query = new Query(Criteria.where("id").is(user.getId()));
        mt.remove(query, User.class);
    }
    public void updateUser(User user) {
        Query query = new Query(Criteria.where("id").is(user.getId()));
        Update update = new Update().set("name", "gary");
        mt.updateMulti(query, update, User.class);
    }
    public User select(User user) {
        Query query = new Query(Criteria.where("id").is(user.getId()));
        User user1 = mt.findOne(query, User.class);
        return user1;
    }
    public List<User> selectAll() {
        List<User> users = mt.findAll(User.class);
        return users;
    }
}
controller
package cn.lay.mongo.controller;
import cn.lay.mongo.entity.User;
import cn.lay.mongo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
 * @author lay
 * @date 2018/09/13 14:45
 */
@RestController
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserService userService;
    @GetMapping("get")
    public User getUser() {
        User user = new User();
        user.setId(1L);
        return userService.select(user);
    }
    @GetMapping("save")
    public void saveUser() {
        User user = new User();
        user.setId(1L);
        user.setName("marry");
        user.setAge(24);
        userService.saveUser(user);
    }
    @GetMapping(value = "remove")
    public void removeUser() {
        User user = new User();
        user.setId(1L);
        user.setName("lay");
        user.setAge(24);
        userService.removeUser(user);
    }
    @GetMapping(value = "update")
    public void updateUser() {
        User user = new User();
        user.setId(1L);
        user.setName("lay");
        user.setAge(24);
        userService.updateUser(user);
    }
    @GetMapping("list")
    public List<User> listUser() {
        return userService.selectAll();
    }
}
MongoTemplate基本操作的更多相关文章
- Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作
		一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ... 
- Android Notification 详解(一)——基本操作
		Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ... 
- Android Notification 详解——基本操作
		Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ... 
- 三、Redis基本操作——List
		小喵的唠叨话:前面我们介绍了Redis的string的数据结构的原理和操作.当时我们提到Redis的键值对不仅仅是字符串.而这次我们就要介绍Redis的第二个数据结构了,List(链表).由于List ... 
- 二、Redis基本操作——String(实战篇)
		小喵万万没想到,上一篇博客,居然已经被阅读600次了!!!让小喵感觉压力颇大.万一有写错的地方,岂不是会误导很多筒子们.所以,恳请大家,如果看到小喵的博客有什么不对的地方,请尽快指正!谢谢! 小喵的唠 ... 
- 一、Redis基本操作——String(原理篇)
		小喵的唠叨话:最近京东图书大减价,小喵手痒了就买了本<Redis设计与实现>[1]来看看.这里权当小喵看书的笔记啦.这一系列的模式,主要是先介绍Redis的实现原理(可能很大一部分会直接照 ... 
- Linq查询基本操作
		摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ... 
- C++ map的基本操作和使用
		原文地址:http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可 ... 
- python之最强王者(10)———文件(File)、输入输出的基本操作
		1. Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 2.打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式. ... 
随机推荐
- Getting Started with Elastic Search in .NET
			I have been working on many application during my career. Many if not all had some searching capabi ... 
- [ActionScript 3.0]  as3启动QQ
			import flash.html.HTMLLoader; import flash.net.URLLoader; import flash.net.URLRequest; import flash. ... 
- gradle 常用命令参数
			参考文档 https://docs.gradle.org/current/userguide/userguide gradle -q 任务名(task ) 执行指定某一个task gradle -q ... 
- Mysql6.0连接中的几个问题  Mysql6.xx
			Mysql6.0连接中的几个问题 在最近做一些Javaweb整合时,因为我在maven官网查找的资源,使用的最新版,6.0.3,发现MySQL连接中的几个问题,总结如下: 1.Loading clas ... 
- 如何在CentOS 7上使用vsftpd(FTP)的配置文件介绍
			vsftpd.conf - vsftpd的配置文件. 描述 vsftpd.conf可用于控制vsftpd行为的各个方面. 默认情况下,vsftpd在/etc/vsftpd.conf位置查找此文件. 但 ... 
- 论文笔记:CNN经典结构2(WideResNet,FractalNet,DenseNet,ResNeXt,DPN,SENet)
			前言 在论文笔记:CNN经典结构1中主要讲了2012-2015年的一些经典CNN结构.本文主要讲解2016-2017年的一些经典CNN结构. CIFAR和SVHN上,DenseNet-BC优于ResN ... 
- [原创]php任务调度器 hellogerard/jobby
			目录 简介 安装 标准使用 选项 项目实践 简介 一个强大的php层面上的定时任务调度器, 无需修改系统层面的crontab 实际中, php 结合 crontab 来实现定时任务是一种经得住考验的实 ... 
- 厉害了,七牛云 CEO 来讲架构了!
			说起许式伟,你应该不陌生,他是七牛云的CEO,ECUG 社区发起人,国内 Go 语言圈的领军人物,曾就职于金山.盛大,有超过 10 年的搜索和分布式存储相关技术的研发经验. 他的个人经历颇为传奇,大学 ... 
- Prufer序列与树的计数(坑)
			\(prufer\)序列: 无根树转\(prufer\)序列: 不断找编号最小的叶子节点,删掉并在序列中加入他相连的节点. \(prufer\)转无根树: 找到在目前\(prufer\)序列中未出现且 ... 
- 原创:centos7.1下 ZooKeeper 集群安装配置+Python实战范例
			centos7.1下 ZooKeeper 集群安装配置+Python实战范例 下载:http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeepe ... 
