java程序连接单机版的mongodb:

参考:http://www.runoob.com/mongodb/mongodb-java.html

https://www.yiibai.com/mongodb/mongodb_java.html

Mongodb JDBC驱动程序,下载地址:http://mongodb.github.io/mongo-java-driver/

需要引用的jar包为:mongo-java-driver-3.9.1.jar

需要注意的是,需要将安装的单机的mongodb的配置中bind_ip=0.0.0.0 否则会连接不上,参考https://www.cnblogs.com/lindsay-chh/p/4734568.html

测试代码:

    public static void main(String[] args) {
try {
@SuppressWarnings("resource")
MongoClient mongoClient=new MongoClient("10.3.13.213" ,27017);
MongoDatabase mongoDatabase=mongoClient.getDatabase("yldb");
mongoDatabase.createCollection("yyCollection");
MongoCollection<Document> collection=mongoDatabase.getCollection("yyCollection");
Document document=new Document("title","111").append("ttt", 111).append("eee", 111222);
collection.insertOne(document);
} catch (Exception e) {
// TODO: handle exception
}

 java连接副本集模式下的MongoDB

在搭建的mongodb环境中,即使有一个节点挂了,也不会影响应用程序客户端对整个副本集的读写。

package test_mongodb;
import java.util.ArrayList;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
public class test2 {
public static void main(String[] args) {
java.util.List<ServerAddress> serverAddresses=new ArrayList<>();
ServerAddress address1=new ServerAddress("10.3.13.213",27017);
ServerAddress address2=new ServerAddress("10.3.2.33",27017);
ServerAddress address3=new ServerAddress("10.3.2.34",27017);
serverAddresses.add(address1);
serverAddresses.add(address2);
serverAddresses.add(address3);
MongoClient client=new MongoClient(serverAddresses);
try {
//连接数据库test
MongoDatabase mongoDatabase=client.getDatabase("test");
//连接集合testcc
MongoCollection<Document> collection=mongoDatabase.getCollection("testcc");
FindIterable<Document> docs=collection.find();
//将集合中的文档内容转换成字符串打印出来
for(Document document:docs){
String string=document.toString();
System.out.println(string);
}
} catch (Exception e) {
System.out.println(e);
}
client.close();
}
}

按上面对的部署与连接下,其实所有的读写操作都是在主节点上进行的。

读写分离:

可以设置只在副本节点上进行读,来减轻主节点的读写压力

首先需要设置副本节点的可读(默认副本节点是不可读写的) repset:SECONDARY> db.getMongo().setSlaveOK()

如下:在获取集合时设置

            //连接集合testcc
ReadPreference readPreference=ReadPreference.secondary();
MongoCollection<Document> collection=mongoDatabase.getCollection("testcc").withReadPreference(readPreference);

也可以在连接数据库时设置,方法相类似

其中:ReadPreference的选项可以选择

primary:默认参数,只从主节点上进行读取操作;

primaryPreferred:大部分从主节点上读取数据,只有主节点不可用时从secondary节点读取数据。

secondary:只从secondary节点上进行读取操作,存在的问题是secondary节点的数据会比primary节点数据“旧”。

secondaryPreferred:优先从secondary节点进行读取操作,secondary节点不可用时从主节点读取数据;

nearest:不管是主节点、secondary节点,从网络延迟最低的节点上读取数据。

参考:https://blog.csdn.net/u013066244/article/details/73835967/

https://blog.csdn.net/bao0682/article/details/47104973

MongoDB_java连接MongoDB的更多相关文章

  1. nodejs连接mongodb的方法

    一. var express = require('express'); var mongodb = require('mongodb'); var app = express(); app.use( ...

  2. Nodejs开发(2.连接MongoDB)

    一.先配置MongoDB Win10下下载那个安装版,zip版的会报却各种DLL,安装在你希望的路径,实在安装错了,就剪切过来也行(本例E:\mongodb). 然后是配置启动脚本,就是写一个bat文 ...

  3. 在express中使用Mongoose连接MongoDB

    为何要学Mongoose? Mongoose是MongoDB的一个对象模型工具,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单. 0.安装 ...

  4. java连接mongodb的一个奇葩问题及奇葩解决方式

    昨天在eclipse中编写代码,本来连接mongodb进行各项操作都是正常的,但是有一会儿突然之间就没法连接了,还一直抱错,错误如下: 信息: Cluster created with setting ...

  5. Java 连接MongoDB

    1.驱动 通过java连接MongoDB需要一个java版的驱动 下载地址:http://mongodb.github.io/mongo-java-driver/ 2.连接MongoDB 通过 com ...

  6. 远程连接mongodb出现 no route to host 和 Connection refused

    部署好mongodb服务器后,在客户端安装好php的mongodb扩展,用程序连接mongodb服务器出错:no route to host.搜索了差不多一天的时候都没有相关的解决方法.最后在mong ...

  7. NOSQL Mongo入门学习笔记 - C++连接Mongodb(三)

    OS环境: Centos 7.1 release X86_64 编译环境: G++ 4.8.3 已经成功搭建好了Mongodb,也初步在命令行中的查询与写入数据的基本方法,现在通过C++来连接Mong ...

  8. 【mongodb 学习一】环境搭建之 mac 下连接 mongodb 的UI 客户端

    记录下 mongodb 的学习 懒得自己达 mongodb 的服务器了 虽然一句命令就能搞定了 brew install mongodb 可是考虑到以后的应用还是放在网上的,就直接用现成的服务吧 下载 ...

  9. NodeJS连接MongoDB数据库时报错

    今天第一次尝试连接MongoDB数据库,具体步骤也很简单. 首先,通过NodeJS运行环境安装MongoDB包,进入要安装的目录,执行语句 npm install mongodb 安装成功后,通过如下 ...

随机推荐

  1. 转向ARC的说明

    转自hherima的博客原文:Transitioning to ARC Release Notes(苹果官方文档) ARC是一个编译器特征,它提供了对OC对象自动管理内存.ARC让开发者专注于感兴趣的 ...

  2. jquery操作滚动条滚动到指定元素位置 scrollTop

    $('.brand_t a').bind('click',function(){ if($(this).attr('title1')){ var toChar = $(this).attr('titl ...

  3. Spring持久化之MyBatis

    MyBatis是一个优秀的轻量级持久化框架,本文主要介绍MyBatis与Spring集成的配置与用法. 1. Spring MyBatis配置 1.1 添加Maven依赖 在pom.xml文件里添加m ...

  4. java在线聊天项目0.5版 解决客户端向服务器端发送信息时只能发送一次问题 OutputStreamWriter DataOutputStream socket.getOutputStream()

    没有解决问题之前客户端代码: package com.swift; import java.awt.BorderLayout; import java.awt.Color; import java.a ...

  5. 企业版https

    http://www.cocoachina.com/bbs/read.php?tid=194213

  6. ios面试题(三)

    4.写一个setter方法用于完成@property (nonatomic,retain)NSString *name,写一个setter方法用于完成@property(nonatomic,copy) ...

  7. 菜鸟学习Cocos2d-x 3.x——内存管理

    菜鸟学习Cocos2d-x 3.x——内存管理 2014-12-10 分类:Cocos2d-x / 游戏开发 阅读(394) 评论(6)    亘古不变的东西 到现在,内存已经非常便宜,但是也不是可以 ...

  8. react 组件架构

    容器型组件(container component) 含有抽象数据而没有业务逻辑的组件 负责管理数据和业务逻辑,不负责 UI 的呈现 带有内部状态 展示型组件(presentational compo ...

  9. cache控制器取值从TCM/CACHE/FLASH

    cache 控制器顶层有4组接口,分别为输入I/D bus ,输出TCM bus /Cache bus /direct flash bus (走cache ID bus matrix) flash 控 ...

  10. 2019年6月14日 Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)

    摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端传输数据编码格式contentType 批量插入数据和自定义分页器 一.MVC与MTV MVC(Model View Controller ...