package com.congge.test;
import com.mongodb.*;
import com.mongodb.client.MongoDatabase;
import org.bson.conversions.Bson;
import java.util.List;
import static java.util.Collections.singletonList;
import com.alibaba.fastjson.JSONObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Aggregates;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.changestream.ChangeStreamDocument;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import static java.util.Arrays.asList;
public class MongoTest {
private static Logger logger = LoggerFactory.getLogger(MongoTest.class);
public static void main(String[] args) {
/*MongoClient mongoClient = new MongoClient("IP", 27017);
DB db = mongoClient.getDB("articledb");
DBCollection collection = db.getCollection("comment");
BasicDBObject query = new BasicDBObject("articleid", "100007");
DBCursor cursor = collection.find(query);
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}*/
mogodbdata();
}
private static void mogodbdata() {
String sURI = "mongodb://IP:27017";
MongoClient mongoClient = new MongoClient(new MongoClientURI(sURI));
MongoDatabase database = mongoClient.getDatabase("articledb");
MongoCollection<Document> collec = database.getCollection("comment");
List<Bson> pipeline = singletonList(Aggregates.match(Filters.or(
Document.parse("{'fullDocument.articleid': '100007'}"),
Filters.in("operationType", asList("insert", "update", "delete")))));
MongoCursor<ChangeStreamDocument<Document>> cursor = collec.watch(pipeline).iterator();
while (cursor.hasNext()) {
ChangeStreamDocument<Document> next = cursor.next();
logger.info("输出mogodb的next的对应的值" + next.toString());
String Operation = next.getOperationType().getValue();
String tableNames = next.getNamespace().getCollectionName();
System.out.println(tableNames);
//获取主键id的值
String pk_id = next.getDocumentKey().toString();
//同步修改数据的操作
if (next.getUpdateDescription() != null) {
JSONObject jsonObject = JSONObject.parseObject(next.getUpdateDescription().getUpdatedFields().toJson());
System.out.println(jsonObject);
}
//同步插入数据的操作
if (next.getFullDocument() != null) {
JSONObject jsonObject = JSONObject.parseObject(next.getFullDocument().toJson());
System.out.println(jsonObject);
}
//同步删除数据的操作
if (next.getUpdateDescription() == null && Operation.matches("delete")) {
JSONObject jsonObject = JSONObject.parseObject(pk_id);
System.out.println(jsonObject);
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
springboot整合mongodb changestream代码
共21个文件
class:9个
java:8个
properties:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 109 浏览量
2022-02-23
14:27:03
上传
评论
收藏 21KB ZIP 举报
温馨提示
1、java客户端使用mongodb changestream代码 2、springboot整合mongodb changestream代码
资源推荐
资源详情
资源评论
收起资源包目录
mongo-test.zip (21个子文件)
mongo-test
pom.xml 2KB
target
classes
application.properties 162B
com
congge
config
MongoConfig$1.class 1KB
MongoMessageListener.class 3KB
MongoConfig.class 1KB
ChangeStream.class 3KB
App.class 655B
test
MongoTest.class 5KB
controller
CommentController.class 1KB
service
MongoDbService.class 2KB
entity
Comment.class 2KB
generated-sources
annotations
mongo-test.iml 80B
src
test
java
main
resources
application.properties 124B
java
com
congge
config
MongoConfig.java 878B
ChangeStream.java 1KB
MongoMessageListener.java 1KB
test
MongoTest.java 3KB
App.java 299B
controller
CommentController.java 622B
service
MongoDbService.java 1KB
entity
Comment.java 1KB
共 21 条
- 1
资源评论
- wj123rh2022-04-22用户下载后在一定时间内未进行评价,系统默认好评。
- sc66662023-08-10资源使用价值高,内容详实,给了我很多新想法,感谢大佬分享~
- nirenwei2024-03-13资源很实用,内容详细,值得借鉴的内容很多,感谢分享。
小码农叔叔
- 粉丝: 6w+
- 资源: 85
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功