MongoDB Java 原生使用示例

Java MongoDB:(七)MongoDB 的集合操作 MongoDB 的集合操作1.创建集合1.1 使用默认集合1.2 创建不带参数的集合1.3 创建带参数的集合2.查看集合2.1 show collections2.2 show tables3.删除集合 MongoDB 中的集合是一组文档的集,相当于关系型数据库中的表 1.创建集合 MongoDB 使用 db.createCollection()函数来创建集合。 语法格式:db.createCollection(name, options)。 name: 要创建的集合名称。 options: 可选参数 阅读详情

简介

MongoDB作为一个常用的数据库,Spring对其也进行了很好的支持,但了解Java如何原生使用对应使用Spring Data封装后的API是很有帮助的

代码示例

本篇中就简单用一个单例示例进行展示,其中对常用的方法进行简单的封装

对常用的增删改查进行了简单的封装,大致如下

import com.mongodb.client.*;
import com.mongodb.client.result.UpdateResult;
import org.apache.log4j.Logger;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.bson.types.ObjectId;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import static com.mongodb.client.model.Filters.eq;

/**
 * MongoDB工具类,只存在一个,使用单例模式实现,其方法使用示例在测试文档中有 MongoDBUtilTest
 */
public class MongoDBUtil {
    private static final Logger logger = Logger.getLogger(MongoDBUtil.class);
    private MongoClient client = null;
    private MongoDatabase database = null;

    /**
     * 静态内部类单例模式实现
     */
    private static class MySingleHandler {
        private static MongoDBUtil instance = new MongoDBUtil();
    }

    public static MongoDBUtil getInstance(){
        return MySingleHandler.instance;
    }

    /**
     * 初始化,从配置文件中读取MongoDB地址、端口、数据库进行连接
     */
    private MongoDBUtil() {
        try {
            String host = (String) Holder.get("mongodb.host");
            String port = (String) Holder.get("mongodb.port");
            String url = "mongodb://" + host + ":" + port;
            client = MongoClients.create(url);
            database = client.getDatabase((String) Holder.get("mongodb.database"));
            logger.info("MongoDB connect successful!");
        }catch (Exception e) {
            System.out.println(e.getClass().getName() + ": " + e.getMessage());
        }
    }

    /**
     * 单条数据插入
     * @param data 数据
     * @param collectionName collection名
     */
    public void addOne(Map<String, Object> data, String collectionName) {
        MongoCollection<Document> collection = database.getCollection(collectionName);
        collection.insertOne(new Document(data));
    }

    /**
     * 多条数据插入
     * @param maps 数据列表
     * @param collectionName 集合名
     */
    public void addMany(List<Map<String, Object>> maps, String collectionName) {
        List<Document> documents = new ArrayList<Document>();
        for(Map<String, Object> map : maps) {
            documents.add(new Document(map));
        }

        MongoCollection<Document> collection = database.getCollection(collectionName);
        collection.insertMany(documents);
    }

    /**
     * 单条数据替换(更新),不存在时可以强制插入
     * @param key 需要替换数据的字典中的key(对应MySQL表的字段名)
     * @param value key对应的值(对应MySQL表的字段值)
     * @param newMap 完整的新的数据
     * @param collectionName collection(表)名称
     * @param isInsert 如果数据库中不存在此数据,是否插入当条数据到数据库中
     */
    public void replaceOne(String key, Object value, Map<String, Object> newMap, String collectionName, boolean isInsert) {
        Bson filter = eq(key, value);
        String mongoIdKey = "_id";
        if (key.equals(mongoIdKey)) {
            filter = eq(key, new ObjectId((String) value));
        }

        MongoCollection<Document> collection = database.getCollection(collectionName);
        UpdateResult result = collection.replaceOne(filter, new Document(newMap));
        if(result.getMatchedCount() == 0 && isInsert) {
            MongoDBUtil.getInstance().addOne(newMap, collectionName);
        }
    }

    /**
     * 单条数据更新,多添加筛选更新,不存在时可以强制插入
     * @param condition 更新添加
     * @param map 完整的新的数据
     * @param collectionName collection(表)名称
     * @param isInsert 如果数据库中不存在此数据,是否插入当条数据到数据库中
     */
    public void replaceOne(Document condition, Map<String, Object> map, String collectionName, boolean isInsert) {
        MongoCollection<Document> collection = database.getCollection(collectionName);
        UpdateResult result = collection.replaceOne(condition, new Document(map));
        if(result.getMatchedCount() == 0 && isInsert) {
            MongoDBUtil.getInstance().addOne(map, collectionName);
        }
    }

    /**
     * 单条数据删除
     * @param key 需要数据数据的字典中的key(对应MySQL表的字段名)
     * @param value key对应的值(对应MySQL表的字段值)
     * @param collectionName collection(表)名称
     */
    public void deleteOne(String key, Object value, String collectionName) {
        Bson filter = eq(key, value);
        String mongoIdKey = "_id";
        if (key.equals(mongoIdKey)) {
            filter = eq(key, new ObjectId((String) value));
        }

        MongoCollection<Document> collection = database.getCollection(collectionName);
        collection.deleteOne(filter);
    }

    /**
     * 单条数据删除(多筛选添加删除)
     * @param condition 删除筛选条件
     * @param collectionName collection(表)名称
     */
    public void deleteOne(Document condition, String collectionName) {
        MongoCollection<Document> collection = database.getCollection(collectionName);
        collection.deleteOne(condition);
    }

    /**
     * 多条数据删除
     * @param key 需要数据数据的字典中的key(对应MySQL表的字段名)
     * @param value key对应的值(对应MySQL表的字段值)
     * @param collectionName collection(表)名称
     */
    public void deleteMany(String key, Object value, String collectionName) {
        Bson filter = eq(key, value);
        String mongoIdKey = "_id";
        if (key.equals(mongoIdKey)) {
            filter = eq(key, new ObjectId((String) value));
        }

        MongoCollection<Document> collection = database.getCollection(collectionName);
        collection.deleteMany(filter);
    }

    /**
     * collection删除
     * @param collectionName 集合名
     */
    public void dropCollection(String collectionName) {
        MongoCollection<Document> collection = database.getCollection(collectionName);
        collection.drop();
    }

    /**
     * 获取当前collection中文档的数量
     * @param collectionName 集合名
     * @param condition 筛选条件
     * @return 文档数量
     */
    public long count(String collectionName, Map<String, Object> condition) {
        MongoCollection<Document> collection = database.getCollection(collectionName);
        return collection.countDocuments(new Document(condition));
    }

    /**
     * 查询:自行构造丰富的多条件查询
     * @param condition 查询条件
     * @param collectionName collection(表)名称
     * @return 数据列表
     */
    public FindIterable<Document> query(Document condition, String collectionName) {
        MongoCollection<Document> collection = database.getCollection(collectionName);
        return collection.find(condition);
    }

    /**
     * 查询:单字段查询
     * @param key 字段名
     * @param value 字段值
     * @param collectionName collection(表)名称
     * @return 单条数据(如果查询出多个,也只返回一个)
     */
    public Document queryOne(String key, Object value, String collectionName) {
        Bson filter = eq(key, value);
        String mongoIdKey = "_id";
        if (key.equals(mongoIdKey)) {
            filter = eq(key, new ObjectId((String) value));
        }

        MongoCollection<Document> collection = database.getCollection(collectionName);
        return collection.find(filter).first();
    }

    /**
     * 查询:单字段
     * @param key 字段名
     * @param value 字段值
     * @param collectionName collection(表)名称
     * @return 查询到的所有数据
     */
    public FindIterable<Document> queryMany(String key, Object value, String collectionName) {
        Bson filter = eq(key, value);
        String mongoIdKey = "_id";
        if (key.equals(mongoIdKey)) {
            filter = eq(key, new ObjectId((String) value));
        }

        MongoCollection<Document> collection = database.getCollection(collectionName);
        return collection.find(filter);
    }

    /**
     * 建立索引
     * @param collectionName 集合表名
     * @param key 索引名
     * @param sort 升降序 1 升序 -1 降序
     */
    public void createIndex(String collectionName, String key, int sort) {
        MongoCollection<Document> collection = database.getCollection(collectionName);
        collection.createIndex(new Document(key, sort));
    }
}

测试代码

package utils;

import cn.nssas.eelantech.utils.MongoDBUtil;
import com.mongodb.client.FindIterable;
import org.bson.Document;
import org.junit.Test;

import java.util.*;

import static org.junit.Assert.assertEquals;

/**
 * MongoDBUtil 测试
 */
public class MongoDBUtilTest {
    // 关闭MongoDB的debug输出日志
    static Logger root = (Logger) LoggerFactory
            .getLogger(Logger.ROOT_LOGGER_NAME);
    static {
        root.setLevel(Level.INFO);
    }

    @Test
    public void testDrop() {
        MongoDBUtil.getInstance().dropCollection("statisticsTest");
    }

    /**
     * 数据插入测试
     */
    @Test
    public void testAdd() {
        MongoDBUtil.getInstance().dropCollection("test");

        // 单条插入测试
        Map map = new HashMap() {{
            put("name", "test");
        }};
        MongoDBUtil.getInstance().addOne(map, "test");
        Document ret = MongoDBUtil.getInstance().queryOne("name", "test", "test");
        assertEquals(String.valueOf(ret.get("name")).equals("test"), true);

        // 多天插入测试
        List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();
        maps.add(new HashMap<String, Object>(16) {{
            put("name", "test2");
        }});
        maps.add(new HashMap<String, Object>(16) {{
            put("name", "test3");
        }});
        MongoDBUtil.getInstance().addMany(maps, "test");
        FindIterable<Document> rets = MongoDBUtil.getInstance().query(new Document(), "test");
        int count = 0;
        for (Document iret : rets) {
            count += 1;
        }
        assertEquals(3, count);

        MongoDBUtil.getInstance().dropCollection("test");
    }

    /**
     * 数据更新测试
     */
    @Test
    public void testReplaceSingleCondition() {
        MongoDBUtil.getInstance().dropCollection("test");

        Map map = new HashMap() {{
            put("name", "test3");
            put("value", 1);
        }};
        MongoDBUtil.getInstance().replaceOne("name", "test", map, "test", true);
        Document ret = MongoDBUtil.getInstance().queryOne("name", "test3", "test");
        assertEquals(1, ret.get("value"));

        MongoDBUtil.getInstance().dropCollection("test");

        MongoDBUtil.getInstance().addOne(map, "test");
        ret = MongoDBUtil.getInstance().queryOne("name", "test3", "test");
        assertEquals(1, ret.get("value"));

        map.put("value", 2);
        MongoDBUtil.getInstance().replaceOne("name", "test3", map, "test", false);
        ret = MongoDBUtil.getInstance().queryOne("name", "test3", "test");
        assertEquals(2, ret.get("value"));

        MongoDBUtil.getInstance().dropCollection("test");
    }

    @Test
    public void testReplaceMultiCondition() {
        MongoDBUtil.getInstance().dropCollection("test");
        Map map = new HashMap() {{
            put("name", "test3");
            put("type", 2);
            put("value", 1);
        }};
        MongoDBUtil.getInstance().replaceOne(new Document(map), map, "test", true);
        Document ret = MongoDBUtil.getInstance().queryOne("name", "test3", "test");
        System.out.println(ret.toString());
        assertEquals("test3", ret.get("name"));
        assertEquals(2, ret.get("type"));
        assertEquals(1, ret.get("value"));

        map.put("value", 2);
        Document condition = new Document("name", "test3").append("type", 2);
        MongoDBUtil.getInstance().replaceOne(condition, map, "test", false);
        ret = MongoDBUtil.getInstance().queryOne("name", "test3", "test");
        System.out.println(ret.toString());
        assertEquals("test3", ret.get("name"));
        assertEquals(2, ret.get("type"));
        assertEquals(2, ret.get("value"));
    }

    /**
     * 数据删除测试
     */
    @Test
    public void testDelete() {
        MongoDBUtil.getInstance().dropCollection("test");

        List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();
        maps.add(new HashMap() {{
            put("name", "test2");
        }});
        maps.add(new HashMap() {{
            put("name", "test3");
        }});
        MongoDBUtil.getInstance().addMany(maps, "test");

        MongoDBUtil.getInstance().deleteOne("name", "test2", "test");
        MongoDBUtil.getInstance().deleteMany("name", "test3", "test");
        FindIterable<Document> rets = MongoDBUtil.getInstance().queryMany("name", "test3", "test");
        int count = 0;
        for (Document iret : rets) {
            count += 1;
        }
        assertEquals(0, count);

        MongoDBUtil.getInstance().dropCollection("test");
    }

    /**
     * 数据查询测试
     */
    @Test
    public void testQuery() {
        MongoDBUtil.getInstance().dropCollection("test");

        Map map = new HashMap() {{
            put("name", "test");
            put("value", 3);
        }};
        MongoDBUtil.getInstance().addOne(map, "test");

        // 自行构造丰富条件查询,下面查询name等于test,value大于等于2小于5的数据
        Document condition = new Document("name", "test")
                .append("value", new Document("$gte", 2).append("$lt", 5));
        FindIterable<Document> rets = MongoDBUtil.getInstance().query(condition, "test");
        Document ret = rets.first();
        assertEquals(ret.get("value"), 3);

        // 或查询语句构造的两种方式
        Document query = new Document("$or", Arrays.asList(new Document("firstname", "abc"), new Document("firstname", "xyz")));
        query = new Document("firstname", new Document("$in", Arrays.asList("abc","xyz")));

        // 单字段单返回查询,查询name等于test的数据
        ret = MongoDBUtil.getInstance().queryOne("name", "test", "test");
        assertEquals(String.valueOf(ret.get("name")).equals("test"), true);

        // 单字段多返回查询,查询name等于test的数据
        MongoDBUtil.getInstance().addOne(map, "test");
        rets = MongoDBUtil.getInstance().queryMany("name", "test", "test");
        int count = 0;
        for (Document iret : rets) {
            count += 1;
        }
        assertEquals(2,count);

        MongoDBUtil.getInstance().deleteMany("name", "test", "test");
        rets = MongoDBUtil.getInstance().queryMany("name", "test", "test");
        count = 0;
        for (Document iret : rets) {
            count += 1;
        }
        assertEquals(0, count);

        MongoDBUtil.getInstance().dropCollection("test");
    }
}

总结

原生的MongoDB使用方式就是如上所示,如果使用过Spring mongodb data的,会发现确实比这个好用很多

但了解原生的使用方式,也有助于我们了解其备用的封装原理,能更好的使用Spring MongoDB data

参考链接

Mongodb前后端整合篇 Spring 数据框架 JPA 、Redis、Elasticsearch、AMQP、MongoDB。 阅读详情

相关推荐

告别ORB-SLAM2?手把手教你用OpenVSLAM在Ubuntu 20.04上跑通第一个SLAM Demo(含依赖库避坑指南)

本文详细介绍了如何在Ubuntu 20.04系统上从ORB-SLAM2迁移到OpenVSLAM,包括环境配置、依赖库安装、编译调整及性能优化。OpenVSLAM凭借其模块化设计和多相机支持,在SLAM领域展现出显著优势,适合机器人导航和AR应用开发。文章还提供了实用的避坑指南和进阶技巧,帮助开发者高效完成迁移。

weixin_42524499的博客 254

MongoDB:在 Java 中使用 MongoDB

除了通过启动 mongo 进程进如 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的访问数据库方法。MongoDB 官方提供了 Java 语言的驱动包,利用这些驱动包可使用多种编程方法来连接并操作 MongoDB 数据库。 想要在 Java 程序中使用 MongoDB,需要确保您的电脑上已经安装了 MongoDB,并搭建好了 Java 的环境。 本篇内容主要介绍:Java 实现对 MongDB 的操作、Java 操作 MongoDB 数据库 Demo

栗筝i的博客 1万+

STM32L476低功耗实战:LPTIM精准定时唤醒STOP2模式与系统级功耗优化

本文深入探讨了STM32L476低功耗实战技巧,重点解析了LPTIM精准定时唤醒STOP2模式的配置与优化。通过详细的步骤指南和实战经验分享,帮助开发者实现系统级功耗优化,特别适合电池供电设备开发。文章涵盖LPTIM1定时器配置、STOP2模式进入流程及常见问题排查,助力将整机功耗降至8.2uA级别。

weixin_33686714的博客 435

java使用原生语句操作mongo_Java 中 MongoDB 使用指南

MongoDB是当今非常流行的一款NoSQL数据库,本文介绍如何使用MongoDB的Java驱动来操作MongoDB。一、引入MongoDB Java Driver包如果需要操作MongoDB的Java项目是一个Maven项目,可以在依赖中加上以下的配置。<dependencies> <dependency> <groupId>org.m...

weixin_39663378的博客 3016

ST MCSDK V6.2.0实战:手把手教你配置HSO-ST观测器,体验500ms收敛的电机无感控制

本文详细介绍了ST MCSDK V6.2.0中HSO-ST观测器的配置方法,实现500ms内电流收敛的无感电机控制。从环境搭建、核心参数解析到无感启动优化,提供实战技巧和性能调优策略,帮助开发者快速掌握高效电机控制技术。

weixin_28720767的博客 578

【20】方案管理器

方案管理器是Excel中一个非常强大且灵活的工具,适合用于多情景分析和比较。在复杂的决策过程中,它可以帮助用户快速管理和评估不同变量组合下的结果,从而优化决策过程。

学习,输出==》再学习再输出 1585

java操作MongoDB

Java 操作MongoDB,一般有两种方式,第一就是Spring Data MongoDB,第二是MongoDB原生API操作。现在都流行Spring Boot,故在实际开发中基本都用Spring Data MongoDB;但是对于初学者,乃至学生,就不推荐使用Spring Data MongoDB了,学习时候要知其然,而知其所以然。有学生就偷懒,使用Spring Data MongoDB,不知其所以然,导致老师问的时候一问三不知,根本解析不清楚MongoTemplate是啥玩意儿。 本篇讲解使用原生AP

义龙道隐的专栏 2877

【数据集】1980-2020年(5年)土地利用分类数据-中国科学院

简介1980-2020年每五年土地利用数据-中国科学院

WW、forever的博客 3931

Java实现原生MongoDB的分组查询(非SpringBoot)

这几天网上查了很多关于MongoDB的查询,但要么是在命令行中的查询,要么是SpringBoot封装好的查询语句,对于我这种用java swing“应付”一下实验的人来说完全是远水解不了近渴。在我孜孜不倦地搜索之下,终于“拼凑”出来了,代码附在下面。 结果展示:(没时间美化界面了,能看就行)

horsetaill的博客 859

【GitHub项目实战】OpenAvatarChat 搭建实时交互数字人

OpenAvatarChat 项目构建了一个集成语音识别、大语言模型、语音合成、表情驱动和实时通信于一体的虚拟人系统,具备本地优先、模块解耦、快速部署的特点。系统通过配置文件统一管理组件,支持多种组合方案,适用于低资源设备和私有化部署场景。配置逻辑清晰、模块职责明确,能快速启动并实现端到端语音交互流程,为多模态系统学习与实践提供了结构完整的工程参考。

Mr数据杨 2744

YOLO26改进策略【Neck】| ICCV2025 反向卷积 Converse2D 数学逆运算提重构 + 特征域建模降伪影,提升多尺度目标检测精度

本文记录的是利用Converse2D 算子改进 YOLO26 的上采样。(Converse 2D Convolution)通过正则化最小二乘闭式解与深度化空间建模结合,实现YOLO26特征提取与上采样阶段的卷积逆运算及特征精准重构。本文利用算子,通过闭式解的非迭代计算还原卷积下采样后的原始特征,再通过可学习核与自适应正则化参数稳定逆问题求解,同时依托圆形填充与插值初始估计保留特征高频细节,对YOLO26中不同尺度检测目标的特征进行针对性重构强化、抑制卷积/转置卷积带来的伪影与信息损失干扰,在特征融合与上采样

Limiiiing的博客 653

java mongodb 原生_spring data mongoDB原生查询

mongodb原生查询语句db.getCollection('chillerDB').aggregate([{$match:{'timestamp':{'$gte':1575907200000,'$lte':1575993600000},'regionId':2}},{'$sample':{'size':49}},{$group:{_id:{'time':'$createTime','timest...

weixin_42360703的博客 809

YOLOv10改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 103

Java使用mongodb原生增删改查语句

Java使用mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml <dependencies> <dependency> <groupId>org.mongodb</gro...

weixin_33721344的博客 780

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JAVA操作MongoDB数据库示例形式(原生+morphia框架)后附库操作

一.基础 1.添加 Givegift givegift=new Givegift(); givegift.setUserId(userId); givegift.setToUserId(toUserId); givegift.setTime(DateUtil.currentTimeSeconds()); dsForRW.save(givegift); 2.根据id删除一条数据 id一定要是obje...

JAVA小白的博客 1627

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

mongodb命令行group分组和java代码中group分组

group分组统计是数据库比较常用的功能,mongodb也不例外。不过相对于普通的增删改查,group操作就略微麻烦一些,这里对group在shell中的操作、使用java原生代码操作以及集成spring进行操作进行一个简单的归纳总结,分组的途径和方法应该都有多种,这里每一样只举一例。本例中数据源如下:需要使用group实现的目的是:按年龄分组统计出每一组的数量。1、mongo shell中执行如

程序员涂小哥的技术博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SSVEP+FBCCA眼动替代系统实战指南

稳态视觉诱发电位(SSVEP)是一种基于视觉刺激频率共振的脑机接口范式,其原理依赖大脑枕叶对闪烁光的固有谐波响应,具备低认知负荷、高信噪比和强鲁棒性等优势;FBCCA(滤波器组典型相关分析)作为当前SSVEP解码的黄金标准,通过分频段建模与动态加权,显著提升低质量EEG下的识别精度与实时性;该技术已广泛应用于ALS等运动功能障碍患者的辅助通信系统,支撑实时拼写、环境控制与医疗决策表达;本文聚焦SSVEP-FBCCA系统从原理设计、算法实现到家庭部署的全链路工程实践,涵盖刺激范式优化、嵌入式解码落地、电极阻抗

weixin_33901641的博客 493

大数据之mongodb --> (2)java集成 MongoDB 3.2,使用Spring-data-mongodb进行集成

Java集成MongoDB有很多方式,可以直接用mongodb的java驱动程序来发送语句到mongodb服务器,也可以用第三方的工具包来做。(1) 选择版本今天我选择的就是springdata集成的mongodb(spring-data-mongodb)1.1 spring-data-mongodb版本gradle坐标:org.springframework.data:spring-data-m

涂作权的博客 1343

不使用spring的情况下用java原生代码操作mongodb数据库的两种方式

由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常。   主要原因实际上是和mongodb本身无关的,因为他们改的是配置文件的密码,而实际上这个密码在代码中根本就没有使用,他们在代码中已经把用户验证信息写死。   在协助他们解决这个问题的时候,我看到他们代码中在和mongodb数据库交互时使用了

程序员涂小哥的技术博客 9949

java mongodb 对象的实例_Java连接MongoDB实例

目录1 Java连接1.1 Maven依赖1.2 客户端代码2 Spring Boot连接2.1Maven依赖2.2配置文件2.3 service层代码笔者所用的MongoDB的版本是4.2.6。1 Java连接1.1 Maven依赖org.mongodbmongodb-driver3.12.41.2 客户端代码import com.mongodb.MongoClient;import com...

weixin_39805255的博客 163

04.Java操作MongoDB

一、java原生操作MongoDB的crud 说明:mongodb-driver是mongo官方推出的java连接mongoDB的驱动包,相当于JDBC驱动、这用即可 1、创建工程、引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" ...

一叶知秋 709

spring-data-mongoDB 操作 elemMatch命令

被elemMatch命令纠结了一下午。mongoDB自己的java驱动写法写好了。但是spring-data-mongoDB一直写不对。。 mongoDB语法: db.users.find({score:{$elemMatch:{$gt:90,$lt:100}}}, {score:1})  mongoDB java-Driver @Test public void testFi...

iteye_15527的博客 2164

MongoDB从入门到删库跑路 ---mongo原生java驱动整合及简单CRUD

首先,cmd命令行打开MongoDB连接,use使用test(自行更换自己使用的库)库。查看owner表内上一篇中创建的数据。这里贴一个测试数据的json数据结构。 var owner1 = { name: "张三", age: 25, books: { name: "天涯明月刀"...

chici6444的博客 271

mongodb group

group分组统计是数据库比较常用的功能,mongodb也不例外。不过相对于普通的增删改查,group操作就略微麻烦一些, 这里对group在shell中的操作、使用java原生代码操作以及集成spring进行操作进行一个简单的归纳总结,分组的途径和方法应该都有多种,这里每一样只举一例。 本例中数据源如下: 需要使用group实现的目的

yisun123456的博客 908

MongoDB的使用

db.getCollection("my_person").find({ name: /^张/ ,name: /大$/}) db.getCollection("my_person").find({ name: /^张/,age:{$lte:12}})

0 755
上一篇: Gitlab Java API 使用示例
下一篇: 【无标题】自己动手写Docker系列 -- 6.3 手动配置容器网络(上)
_萧_
博客等级 码龄10年 55粉丝 157原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值