SpringBoot集成Mongo
1.添加依赖
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-data-mongodb</artifactId>
-
</dependency>
2.添加配置
-
spring:
-
application:
-
name: Mongo APP
-
data:
-
mongodb:
-
uri: mongodb://{用户名}:{密码}@{IP}:{PORT}/{数据库名}?authSource={鉴权数据库名}
-
-
未做鉴权时,uri如下:
-
mongodb://{IP}:{PORT}/{数据库名}
3.基础操作
-
package com.watrix.mongo;
-
-
import com.mongodb.client.result.DeleteResult;
-
import com.mongodb.client.result.UpdateResult;
-
import com.watrix.mongo.po.User2PO;
-
import com.watrix.mongo.po.UserPO;
-
import lombok.extern.slf4j.Slf4j;
-
import org.bson.BSONObject;
-
import org.bson.types.ObjectId;
-
import org.junit.jupiter.api.DisplayName;
-
import org.junit.jupiter.api.Test;
-
import org.springframework.beans.factory.annotation.Autowired;
-
import org.springframework.boot.test.context.SpringBootTest;
-
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 java.util.List;
-
-
@Slf4j
-
@SpringBootTest
-
public class MongoBaseTest {
-
@Autowired
-
private MongoTemplate mongoTemplate;
-
-
@Test
-
@DisplayName("objectId生成")
-
public void objectIdGenerateTest() {
-
for (int i = 0; i < 10; i ) {
-
ObjectId objectId = ObjectId.get();
-
log.info("xxx>>> " objectId.toString());
-
}
-
}
-
-
@Test
-
@DisplayName("插入一个对象,ID属性为Long,指定ID")
-
public void insertOneWithId() {
-
UserPO userPO = new UserPO(1L, "张飞", 24, "丈八蛇矛");
-
UserPO insertResult = mongoTemplate.insert(userPO);
-
log.info(insertResult.toString());
-
}
-
-
@Test
-
@DisplayName("插入一个对象,ID属性为ObjectId,不指定ID")
-
public void insertOneNoId() {
-
User2PO userPO = new User2PO("张飞", 24, "丈八蛇矛");
-
User2PO insertResult = mongoTemplate.insert(userPO);
-
log.info(insertResult.toString());
-
}
-
-
@Test
-
@DisplayName("查询")
-
public void queryTest() {
-
List<User2PO> user2POS = mongoTemplate.find(new Query(), User2PO.class);
-
log.info(user2POS.toString());
-
}
-
-
@Test
-
@DisplayName("修改")
-
public void queryByCondationTest() {
-
Query query = new Query();
-
query.addCriteria(Criteria.where("userName").is("张飞"));
-
List<User2PO> user2POS = mongoTemplate.find(query, User2PO.class);
-
log.info("修改前数据:" user2POS.toString());
-
-
Update update = new Update();
-
// set操作需保证字段已存在
-
update.set("age", 50)
-
.set("prop","战士");
-
UpdateResult updateResult = mongoTemplate.updateMulti(query, update, User2PO.class);
-
log.info("updateResult: >>> {}",updateResult);
-
log.info("修改后数据:{}" , mongoTemplate.find(query, User2PO.class));
-
}
-
-
@Test
-
@DisplayName("删除")
-
public void deleteTest() {
-
Query query = new Query();
-
query.addCriteria(Criteria.where("userName").is("张飞"));
-
List<User2PO> user2POS = mongoTemplate.find(query, User2PO.class);
-
log.info("删除前数据:" user2POS.toString());
-
-
DeleteResult remove = mongoTemplate.remove(query, User2PO.class);
-
log.info("updateResult: >>> {}",remove);
-
log.info("删除后数据:{}" , mongoTemplate.find(query, User2PO.class));
-
}
-
}
-
package com.watrix.mongo.po;
-
-
import lombok.AllArgsConstructor;
-
import lombok.Data;
-
import lombok.NoArgsConstructor;
-
import org.bson.types.ObjectId;
-
import org.springframework.data.annotation.Id;
-
import org.springframework.data.mongodb.core.mapping.Document;
-
-
-
-
-
-
public class User2PO {
-
-
private ObjectId userId;
-
-
private String userName;
-
-
private Integer age;
-
-
private String weapon;
-
-
public User2PO(String userName, int age, String weapon) {
-
this(null,userName,age,weapon);
-
}
-
}
-
package com.watrix.mongo.po;
-
-
import lombok.AllArgsConstructor;
-
import lombok.Data;
-
import lombok.NoArgsConstructor;
-
import org.springframework.data.annotation.Id;
-
import org.springframework.data.mongodb.core.mapping.Document;
-
-
-
-
-
-
public class UserPO {
-
-
private Long userId;
-
-
private String userName;
-
-
private Integer age;
-
-
private String weapon;
-
-
public UserPO(String userName, int age, String weapon) {
-
this(null,userName,age,weapon);
-
}
-
}
4.关于ObjectId
-
如果通过Mongo生成ID,则使ID属性定义为ObjectId,插入数据时忽略ID。
-
如果不通过Mongo生成,则自定义ID属性,添加注解,插入数据时自行生成ID。
5.复杂查询
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgacafk
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24