版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Java 操作MongoDB 基本操作
需要下载驱动,并且依赖不多说:
看代码:
package com.payment;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
//不需要认证
public class LoginMongoDB {
/**
* 获得无密码验证的client
* @param ip
* @param port
* @return
*/
public static MongoClient getClient(String ip,int port){
MongoClient client=null;
try {
MongoClientOptions.Builder build = new MongoClientOptions.Builder();
// 与数据最大连接数50
build.connectionsPerHost(50);
// 如果当前所有的connection都在使用中,则每个connection上可以有50个线程排队等待
build.threadsAllowedToBlockForConnectionMultiplier(50);
build.connectTimeout(1 * 60 * 1000);
build.maxWaitTime(2 * 60 * 1000);
MongoClientOptions options = build.build();
InetAddress inetAddress;
inetAddress = InetAddress.getByName(ip);
ServerAddress addr=new ServerAddress(inetAddress, port);//设置地址
client = new MongoClient(addr, options);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return client;
}
public static void main(String args[]) throws UnknownHostException {
MongoClientOptions.Builder build = new MongoClientOptions.Builder();
// 与数据最大连接数50
build.connectionsPerHost(50);
// 如果当前所有的connection都在使用中,则每个connection上可以有50个线程排队等待
build.threadsAllowedToBlockForConnectionMultiplier(50);
build.connectTimeout(1 * 60 * 1000);
build.maxWaitTime(2 * 60 * 1000);
MongoClientOptions options = build.build();
InetAddress inetAddress=InetAddress.getByName("127.0.0.1");
ServerAddress addr=new ServerAddress(inetAddress, 27017);//设置地址
MongoClient client = new MongoClient(addr, options);
// 获取数据库test,不存在的话,会自动建立该数据库
MongoDatabase db = client.getDatabase("mydb");
// 获取data集合,不存在的话,会自动建立该集合(相当于关系数据库中的数据表)
MongoCollection<Document> users = db.getCollection("ZF_FUNDINORDERPAYT");
// Document document = new Document();
// document.append("firstName", "lei");
// document.append("address", "sichuan chengdu");
// users.insertOne(document);
// MongoClient使用完后必须要close释放资源
for (Document cur : users.find()) {
System.out.println(cur.toJson());
}
client.close();
}
}
更新操作符
名称 描述$inc 增加一个指定值
$mul 乘以一个指定值
$rename 重命名
$setOnInsert 更新操作对现有的文档没有影响,而是新插入了一个文档,则在这新插入的文档中加上指定字段
$set 修改值
$unset 删除文档中指定字段
$min 更新文档中小于指定值的字段
$max 更新文档中大于指定值的字段
$currentDate 设置当前时间,日期或者时间戳
$set
只修改指定字段值,当字段不存在时,则在该文档中添加一个新的字段并赋值
doc.updateOne(Filters.eq("age", 20), new Document("$set",new Document("sex",2222)));
FindIterable<Document> iter1 = doc.find();
iter1.forEach(new Block<Document>() {
public void apply(Document _doc) {
System.out.println(_doc.toJson());
}
});
参考资料: