1.连接

①方式一

        MongoClientOptions.Builder builder = MongoClientOptions.builder(); //可以通过builder做各种详细配置
MongoClientOptions myOptions = builder.build();
ArrayList<ServerAddress> serverAddressList = new ArrayList();
ServerAddress record = new ServerAddress("localhost", 27017); //IP、端口
serverAddressList.add(record); //用户名、默认库名、密码
MongoCredential credential = MongoCredential.createCredential("testUser", "test", "testPwd".toCharArray());
MongoClient mongoClient = new MongoClient(serverAddressList, credential, myOptions);

②方式二

        //用户名、密码、IP、端口、默认库名
String sURI = String.format("mongodb://%s:%s@%s:%d/%s", "testUser", "testPwd", "localhost", 27017, "test");
MongoClient mongoClient = new MongoClient(new MongoClientURI(sURI));

③方式三(没开启权限验证模式时可使用)

        //不使用用户名和密码直接进行登陆(方便初学者,避免过于复杂的设置)
MongoClient mongoClient = new MongoClient("localhost", 27017);

2.中间步骤(创建一个collection存放数据,相当于表table)

        MongoDatabase dbTest = mongoClient.getDatabase("test");

        //如果不存在,则增加collection
MongoCollection<Document> collection = dbTest.getCollection("test_collection");
if (collection == null) {
dbTest.createCollection("test_collection");
}

3.insert

        //insert 增加数据
Document doc = new Document();
doc.append("Name", "name1");
doc.append("Age", 20);
//collection.insertOne(doc); //增加一条数据 //增加多条数据
Document doc2 = new Document();
doc2.append("Name", "name2");
doc2.append("Age", 30); ArrayList dataList = new ArrayList();
dataList.add(doc);
dataList.add(doc2);
collection.insertMany(dataList);

4.delete

        //delete 删除数据
BasicDBObject delSql = new BasicDBObject("Name", "name1");
collection.findOneAndDelete(delSql); //删除一条
//collection.deleteMany(delSql); //删除多条

5.update

        //update 修改数据
BasicDBObject updateOldSql = new BasicDBObject("Name", "name2");
//更新一条数据
BasicDBObject updateNewOneSql = new BasicDBObject("$set", new BasicDBObject("Name", "name1"));
//collection.updateOne(updateOldSql,updateNewOneSql); //更新多条数据
BasicDBObject updateNewManySql = new BasicDBObject("$set", new BasicDBObject("Name", "name1").append("Age",66)); //修改多个字段
collection.updateMany(updateOldSql, updateNewManySql);

6.query

        //查询数据
BasicDBObject querySql = new BasicDBObject("Name", "name1");
FindIterable<Document> queryRst = collection.find(querySql); //这里可以做sort和filter等操作
MongoCursor<Document> cursor = queryRst.iterator();
while (cursor.hasNext()){
System.out.println(cursor.next());//输出每一行数据
}

以上。

Java操作MongoDB:连接&增&删&改&查的更多相关文章

  1. 简单的php数据库操作类代码(增,删,改,查)

    这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...

  2. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  3. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  4. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  5. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  6. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  7. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  8. python基础中的四大天王-增-删-改-查

    列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...

  9. MongoDB增 删 改 查

    增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...

随机推荐

  1. Laravel-2

    ● php发邮件 参考:https://blog.csdn.net/sinat_37390744/article/details/54667794 ● ajax提交表单时防止csrf攻击 1. 在网页 ...

  2. English Time And Date

    What's the Time in English? Explanation There are two common ways of telling the time. Formal but ea ...

  3. Oracle ROWNUM用法和分页查询总结

    **************************************************************************************************** ...

  4. SparkSQL与Hive on Spark的比较

    简要介绍了SparkSQL与Hive on Spark的区别与联系 一.关于Spark 简介 在Hadoop的整个生态系统中,Spark和MapReduce在同一个层级,即主要解决分布式计算框架的问题 ...

  5. xcode代码提示没了

    defaults write com.apple.dt.XCode IDEIndexDisable 0 https://www.jianshu.com/p/57a14bed9d1b

  6. 如何将本地大文件通过终端上传到linux服务器

    第一种方式:  SecureCRT下   上传文件只需在shell终端仿真器中输入命令“rz”,即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器当前路径下.   下载文件只需在s ...

  7. [转贴] 软件测试职业发展的 A 面和 B 面

    [转贴] 软件测试职业发展的 A 面和 B 面 1.所谓的软件测试技术到底包含什么? 梅子:我先来从传统意义上来谈一下测试技术,主要就是测试分析,测试设计,测试管理,测试执行,自动化测试技术,专项测试 ...

  8. Centos下,Docker部署Yapi接口管理平台(详细得令人发指)

    接口测试的工具很多,公司引进了接口管理平台Yapi,自己尝试直接搭建,从安装Nodejs到配置MongoDB数据库,再到安装yapi的时候,遇到浏览器打开本地服务器Ip地址后,没有显示部署内容...没 ...

  9. 【UML】NO.71.EBook.9.UML.4.002-【PowerDesigner 16 从入门到精通】- RQM

    1.0.0 Summary Tittle:[UML]NO.71.EBook.9.UML.4.002-[PowerDesigner 16 从入门到精通]-  RQM Style:DesignPatter ...

  10. css根据子元素多少类设置子元素的属性--九宫格

    .moment-image-div:nth-child(n+1):nth-last-child(-n+9){ width: 33.33%; float: left; } .moment-image-d ...