当前位置: 首页 > news >正文

【Java、MongoDB】程序控制非关系数据库

步骤:

(1)连接

连接字符串

(2)CRUD

类与接口

解析

(3)maven管理方法

依赖

<dependency><groupId>org.mongodb</groupId><artifactId>mongodb-driver-legacy</artifactId><version>4.10.2</version></dependency>

示例

package org.example;import com.mongodb.client.*;
import org.bson.Document;import java.util.Arrays;/*** @author gzb Email:a@wk2.cn* @since 2023/11/06 14:27*/
public class t1 {public static void main(String[] args) {MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");MongoDatabase mongoDatabase = mongoClient.getDatabase("myDB");MongoCollection<Document> collection = mongoDatabase.getCollection("video");System.out.println("before operation");insertExample(collection);System.out.println("after operation");FindIterable<Document> documents = collection.find();for (Document document: documents){System.out.println(document.toJson());}mongoClient.close(); // 记得关闭客户端连接}private static void insertExample(MongoCollection<Document> collection) {collection.insertMany(Arrays.asList(new Document("title", "MongoDB installation").append("author", "Mike").append("tags", Arrays.asList("MongoDB", "database")).append("views", 1221).append("evaluation", new Document("like", 22).append("forward", 10)),new Document("title", "Java programming  ").append("author", "Mike").append("tags", Arrays.asList("Java", "course")).append("views", 3411).append("evaluation", new Document("like", 112).append("forward", 32)),new Document("title", "Music recommend").append("author", "Joe").append("tags", Arrays.asList("music", "pop")).append("views", 38).append("evaluation", new Document("like", 2))));}}

操作

插入

   private static void insertExample(MongoCollection<Document> collection) {collection.insertMany(Arrays.asList(new Document("title", "MongoDB installation").append("author", "Mike").append("tags", Arrays.asList("MongoDB", "database")).append("views", 1221).append("evaluation", new Document("like", 22).append("forward", 10)),new Document("title", "Java programming  ").append("author", "Mike").append("tags", Arrays.asList("Java", "course")).append("views", 3411).append("evaluation", new Document("like", 112).append("forward", 32)),new Document("title", "Music recommend").append("author", "Joe").append("tags", Arrays.asList("music", "pop")).append("views", 38).append("evaluation", new Document("like", 2))));}

删除

private static void delete(MongoCollection<Document> collection){collection.deleteMany(Filters.eq("author", "Joe"));}

更新

 private static void update(MongoCollection<Document> collection) {collection.updateOne(new Document("title", "MongoDB installation").append("author", "Mike"),Updates.inc("views", 1));}

还有set,pop,push等操作 

替换

private static void replace(MongoCollection<Document> collection) {collection.replaceOne(Filters.eq("author", "tom"), new Document("author", "jacky").append("count",2));}

查找

private static void select(MongoCollection<Document> collection) {Bson filter = Filters.gt("evaluation.like", 10);FindIterable<Document> documents = collection.find(filter);for (Document document : documents) {System.out.println(document.toJson());}}

分组

 MongoCursor<Document> mongoCursor = collection.aggregate(Arrays.asList(Aggregates.match(Filters.empty()),Aggregates.group("$author", Accumulators.sum("count", 1)))).cursor();

http://www.lryc.cn/news/226984.html

相关文章:

  • MySQL查询时间处理相关函数与方法实践笔记
  • springboot全局拦截sql异常
  • AlGaN/GaN HFET 五参数模型
  • 矩阵的除法
  • Java中的 向上转型 | 向下转型
  • 【华为OD机试AB高分必刷题目】朋友圈(C++-并查集Union-Find实现)
  • 前端面试题之vue篇
  • Java进阶(垃圾回收GC)——理论篇:JVM内存模型 垃圾回收定位清除算法 JVM中的垃圾回收器
  • GaN HEMT 电容的分析建模,包括寄生元件
  • Python实战 | 使用 Python 和 TensorFlow 构建卷积神经网络(CNN)进行人脸识别
  • JLink edu mini 10Pin接口定义
  • compile: version “go1.19“ does not match go tool version “go1.18.1“
  • spring boot security 自定义AuthenticationProvider
  • 某电力设计公司绩效考核优化项目成功案例纪实
  • 力扣371周赛
  • Python之字符串、正则表达式练习
  • Transmit :macOS 好用的 Ftp/SFtp 工具
  • 【Github】git clone命令下载文件中途停止
  • Clickhouse学习笔记(10)—— 查询优化
  • [量化投资-学习笔记012]Python+TDengine从零开始搭建量化分析平台-策略回测
  • MySQL 查看 event 执行记录
  • 开发知识点-Vue-Electron
  • 【线性代数】反求矩阵A
  • MyBatis 中的 foreach 的用法
  • 交叉编译 mysql-connector-c
  • 企业如何选择正确的存储服务器租用?
  • 45.跳跃游戏II
  • css style、css color 转 UIColor
  • C++(20):typename声明类的子类型的简化
  • 一个java文件的JVM之旅