pom.xml引入jar
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>4.7.1</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.8.2</version>
</dependency>
JAVA MongoApi 操作
public static void main(String[] args) {
try {
ServerAddress serverAddress = new ServerAddress("172.16.131.156",27017);
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("tbook", "STC", "tbook".toCharArray());
MongoClientOptions.Builder build = new MongoClientOptions.Builder();
build.connectionsPerHost(50);
build.maxWaitTime(2*60*1000);
;
build.threadsAllowedToBlockForConnectionMultiplier(50);
build.connectTimeout(1000*60*1);
build.localThreshold(15000);
build.maxConnectionIdleTime(6000);
build.socketTimeout(60000);
MongoClientOptions myOptions = build.build();
MongoClient mongoClient = new MongoClient(addrs,credential,myOptions);
MongoDatabase mongoDatabase = mongoClient.getDatabase("STC");
System.out.println("Connect to database successfully");
findOneUpdate(mongoDatabase);
} catch (Exception e) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
查询
集合查询 find
mongoDatabase.getCollection(table).find()
查询集合的总数量 countDocuments
mongoDatabase.getCollection(table).countDocuments()
按条件查询
单条件查询 Filters.eq
Bson bson = Filters.eq("name",1);
mongoDatabase.getCollection(table).find(bson);
单条件查询数量 countDocuments
Bson bson = Filters.eq("name",1);
mongoDatabase.getCollection(table).countDocuments(bson);
多条件查询 Filters.and
Bson bson =Filters.and( Filters.eq("name",1), Filters.eq("_id",0));
mongoDatabase.getCollection(table).find(bson);
多条件查询数量 countDocuments
Bson bson =Filters.and( Filters.eq("name",1), Filters.eq("_id",0));
mongoDatabase.getCollection(table).countDocuments(bson);
查询返回指定字段 projection
Bson bson =Filters.and( Filters.eq("name",1), Filters.eq("_id",0));
FindIterable<Document> tbook = mongoDatabase.getCollection(table).find().projection(bson);
查询并排序 sort
Bson sort = Filters.eq("time",-1);
FindIterable<Document> tbook1 = mongoDatabase.getCollection(table).find().sort(sort);
按条件,时间区间查询并排序
Bson filter =Filters.and(Filters.eq("securityID", "TS2306"),Filters.gte("createTime", "2022-10-19 00:00:00.000"),Filters.lte("createTime", "2022-10-19 23:59:59.999")) ;
Bson sort = Filters.eq("time",-1);
FindIterable<Document> tbook = mongoDatabase.getCollection(table).find(filter).sort(sort);
模糊查询 regex
Bson filter = Filters.regex("name", "小明");
mongoDatabase.getCollection("test").find(filter);
分页查询 skip,limit
Bson filter = Filters.regex("name", "小明");
mongoDatabase.getCollection("test").find(filter).skip(2).limit(10);
添加
单条添加 insertOne
Document document = new Document();
document.append("name","小明").append("age",10).append("sex","男").append("time","2022-10-18 17:45:06.465");
mongoDatabase.getCollection("test").insertOne(documents);
多条添加 insertMany
List<Document> documents = new ArrayList<>();
Document document = new Document();
document.append("name","小明").append("age",10).append("sex","男").append("time","2022-10-18 17:45:06.465");
Document document1 = new Document();
document1.append("name","小红").append("age",10).append("sex","女").append("time","2022-10-18 17:45:06.460");
documents.add(document);
documents.add(document1);
mongoDatabase.getCollection("test").insertMany(documents);
修改
有就修改,没有就添加 findOneAndUpdate
Bson filter =Filters.and(Filters.eq("name", "小明"),Filters.eq("sex","男")) ;
Document document = new Document();
document.append("name","小明军").append("age",15).append("sex","男人").append("time","2022-10-18 17:45:06.480");
Document oneAndUpdate = mongoDatabase.getCollection("test").findOneAndUpdate(filter, new Document().append("$set", document), new FindOneAndUpdateOptions().upsert(true));
修改单条 updateOne
Bson filter =Filters.and(Filters.eq("name", "小明"),Filters.eq("sex","男")) ;
Document document = new Document();
document.append("name","小明军").append("age",15).append("sex","男人").append("time","2022-10-18 17:45:06.480");
mongoDatabase.getCollection("test").updateOne(filter,new Document().append("$set", document));
修改多条 updateMany
Bson filter =Filters.and(Filters.eq("name", "小明"),Filters.eq("sex","男")) ;
Document document = new Document();
document.append("name","小明军").append("age",15).append("sex","男人").append("time","2022-10-18 17:45:06.480");
mongoDatabase.getCollection("test").updateMany(filter,new Document().append("$set", document));
删除数据
删除单个数据 deleteOne
Bson filter = Filters.and(Filters.eq("name", "小明"), Filters.eq("sex", "男"));
mongoDatabase.getCollection("test").deleteOne(filter);
删除多个数据 deleteMany
Bson filter = Filters.and(Filters.eq("name", "小明"), Filters.eq("sex", "男"));
mongoDatabase.getCollection("test").deleteMany(filter);
JAVA代码展示
package test;
import com.mongodb.*;
import com.mongodb.client.ClientSession;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.result.UpdateResult;
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.concurrent.TimeUnit;
public class Authentication {
public static String table = "test";
public static void main(String[] args) {
try {
ServerAddress serverAddress = new ServerAddress("172.16.131.156",27017);
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("tbook", "STC", "tbook".toCharArray());
MongoClientOptions.Builder build = new MongoClientOptions.Builder();
build.connectionsPerHost(50);
build.maxWaitTime(2*60*1000);
;
build.threadsAllowedToBlockForConnectionMultiplier(50);
build.connectTimeout(1000*60*1);
build.localThreshold(15000);
build.maxConnectionIdleTime(6000);
build.socketTimeout(60000);
MongoClientOptions myOptions = build.build();
MongoClient mongoClient = new MongoClient(addrs,credential,myOptions);
MongoDatabase mongoDatabase = mongoClient.getDatabase("STC");
System.out.println("Connect to database successfully");
findOneUpdate(mongoDatabase);
} catch (Exception e) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
public static void query(MongoDatabase mongoDatabase){
mongoDatabase.getCollection(table).countDocuments();
Bson bson =Filters.and( Filters.eq("name",1), Filters.eq("_id",0));
FindIterable<Document> tbook = mongoDatabase.getCollection(table).find().projection(bson);
tbook.forEach((Block<? super Document>) document -> {
System.out.println(document.get("name"));
});
Bson sort = Filters.eq("time",-1);
FindIterable<Document> tbook1 = mongoDatabase.getCollection(table).find().sort(sort);
tbook1.forEach((Block<? super Document>) document -> {
System.out.println(document);
});
}
public static void queryWhere(MongoDatabase mongoDatabase){
Bson filter =Filters.and(Filters.eq("securityID", "TS2306"),
Filters.gte("createTime", "2022-10-19 00:00:00.000"),
Filters.lte("createTime", "2022-10-19 23:59:59.999")) ;
Bson sort = Filters.eq("time",-1);
FindIterable<Document> tbook = mongoDatabase.getCollection(table).find(filter).sort(sort);
long countDocuments = mongoDatabase.getCollection(table).countDocuments(filter);
System.out.println(countDocuments);
tbook.forEach((Block<? super Document>) document -> {
System.out.println(document);
});
}
public static void updateWhere(MongoDatabase mongoDatabase){
Bson filter =Filters.and(Filters.eq("_id", new ObjectId("63579bcd4d01156a58abfc1e"))) ;
Document document = new Document();
document.append("name","小小红").append("age",10).append("sex","女");
UpdateResult updateResult = mongoDatabase.getCollection("test").updateOne(filter, new Document("$set", document));
System.out.println(updateResult.getModifiedCount());
}
public static void findOneUpdate(MongoDatabase mongoDatabase){
Bson filter =Filters.and(Filters.eq("name", "小明"),Filters.eq("sex","男")) ;
Document document = new Document();
document.append("name","小明军").append("age",15).append("sex","男人").append("time","2022-10-18 17:45:06.480");
Document oneAndUpdate = mongoDatabase.getCollection("test").findOneAndUpdate(filter, new Document().append("$set", document), new FindOneAndUpdateOptions().upsert(true));
mongoDatabase.getCollection("test").updateMany(filter,new Document().append("$set", document));
System.out.println(oneAndUpdate);
}
public static void updateOneMany(MongoDatabase mongoDatabase){
Bson filter =Filters.and(Filters.eq("name", "小明"),Filters.eq("sex","男")) ;
Document document = new Document();
document.append("name","小明军").append("age",15).append("sex","男人").append("time","2022-10-18 17:45:06.480");
mongoDatabase.getCollection("test").updateMany(filter,new Document().append("$set", document));
mongoDatabase.getCollection("test").updateOne(filter,new Document().append("$set", document));
}
public static void deleteOneMany(MongoDatabase mongoDatabase) {
Bson filter = Filters.and(Filters.eq("name", "小明"), Filters.eq("sex", "男"));
mongoDatabase.getCollection("test").deleteMany(filter);
mongoDatabase.getCollection("test").deleteOne(filter);
}
public static void likeQuery(MongoDatabase mongoDatabase) {
Bson filter = Filters.regex("name", "小明");
mongoDatabase.getCollection("test").find(filter).skip(2).limit(10);
mongoDatabase.getCollection("test").find(filter);
}
public static void insertWhere(MongoDatabase mongoDatabase){
List<Document> documents = new ArrayList<>();
Document document = new Document();
document.append("name","小明").append("age",10).append("sex","男").append("time","2022-10-18 17:45:06.465");
Document document1 = new Document();
document1.append("name","小红").append("age",10).append("sex","女").append("time","2022-10-18 17:45:06.460");
documents.add(document);
documents.add(document1);
mongoDatabase.getCollection("test").insertMany(documents);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141