java连接mongodb3_MongoDB 3.X JAVA基本操作

1 importjava.util.ArrayList;2 importjava.util.Iterator;3 importjava.util.List;4

5 importorg.bson.Document;6

7 importcom.mongodb.Block;8 importcom.mongodb.MongoClient;9 importcom.mongodb.MongoClientURI;10 importcom.mongodb.MongoCredential;11 importcom.mongodb.ServerAddress;12 importcom.mongodb.client.FindIterable;13 importcom.mongodb.client.MongoCollection;14 importcom.mongodb.client.MongoCursor;15 importcom.mongodb.client.MongoDatabase;16 importcom.mongodb.client.result.DeleteResult;17 importcom.mongodb.client.result.UpdateResult;18 importcom.mongodb.client.model.BulkWriteOptions;19 importcom.mongodb.client.model.DeleteOneModel;20 importcom.mongodb.client.model.Filters;21 importcom.mongodb.client.model.InsertOneModel;22 importcom.mongodb.client.model.Projections;23 importcom.mongodb.client.model.ReplaceOneModel;24 importcom.mongodb.client.model.Sorts;25 importcom.mongodb.client.model.UpdateOneModel;26 importcom.mongodb.client.model.WriteModel;27

28 import static com.mongodb.client.model.Filters.gt; /***/

29 import staticcom.mongodb.client.model.Filters.eq;30 import staticcom.mongodb.client.model.Filters.and;31 import staticcom.mongodb.client.model.Filters.lt;32

33

34 public classMongoDBJDBC {35

36 @SuppressWarnings("resource")37 public static voidmain(String[] args) {38 try{39 /**直接登录*/

40 //To directly connect to a single MongoDB server.41 //(this will not auto-discover the primary even if it's a member of a replica set)

42 /*

43 MongoClient mongoClient = new MongoClient("192.168.253.10", 27017);44 MongoDatabase mongoDatabase = mongoClient.getDatabase("dsp");45 System.out.println("Connect to database successfully!");46 */

47

48 /**使用URI连接信息连接*/

49 /*

50 MongoClientURI connectionString = new MongoClientURI("mongodb://192.168.253.10:27017,192.168.253.20:27018,192.168.253.30:27019");51 MongoClient mongoClient = new MongoClient(connectionString);52 */

53

54 /**Replica Set 认证登录*/

55 //to connect to a replica set, with auto-discovery of the primary, supply a seed list of members56 //数据库URI(两个参数分别为:服务器地址、端口)

57 ServerAddress serverAddress = new ServerAddress("192.168.253.10", 27017);58 List addressList = new ArrayList();59 addressList.add(serverAddress);60 //认证信息(三个参数分别为:用户名、数据库名称、密码)

61 MongoCredential credential = MongoCredential.createScramSha1Credential("dsp", "dsp", "shi".toCharArray());62 List credentialList = new ArrayList();63 credentialList.add(credential);64 //根据URI和认证信息获取数据库连接

65 MongoClient mongoClient = newMongoClient(addressList, credentialList);66

67 /**切换数据库*/

68 MongoDatabase mongoDatabase = mongoClient.getDatabase("dsp");69 /**切换到需要操作的集合*/

70 MongoCollection collection = mongoDatabase.getCollection("col");71

72 /**插入文档*/

73 //创建文档 org.bson.Document对象,参数为K:V格式74 //创建文档集合List75 //将文档集合插入数据库集合中collection.insertMany(List),插入单个文档可以用collection.insertOne(Document)

76 /*

77 List docList = new ArrayList();78 for (int idx = 0; idx < 10; ++idx) {79 Document doc = new Document("title", "MongoDB" + idx).80 append("desc", "数据库" + idx).81 append("likes", 100 + idx * 10).82 append("by", "dsp" + idx);83 docList.add(doc);84 }85 collection.insertMany(docList);86 */

87

88 /**更新文档*/

89 /*

90 UpdateResult updateResult = collection.updateMany(and(gt("likes", 90), lt("likes", 110)), new Document("$set", new Document("likes", 30)));91 updateResult.getMatchedCount();92 updateResult.getUpsertedId();93 updateResult.getModifiedCount();94 */

95

96 /**删除文档*/

97 /*

98 DeleteResult deleteResult = collection.deleteMany(Filters.eq("likes", 30));99 System.out.println("本次删除 " + deleteResult.getDeletedCount() + " 条记录!");100 */

101

102 /**检索文档*/

103 /*

104 FindIterable findIterable = collection.find();105 MongoCursor mongoCursor = findIterable.iterator();106 try {107 while (mongoCursor.hasNext()) {108 System.out.println(mongoCursor.next().toJson());109 }110 } finally {111 mongoCursor.close();112 }113 */

114

115 //查询过滤器

116 /*

117 Document myDoc = (Document) collection.find(eq("likes", 10)).first();118 System.out.println(myDoc.toJson());119 */

120

121 /**使用范围查询获取一个较大的子集*/

122 Block printBlock = new Block() {123 @Override124 public voidapply(Document doc) {125 System.out.println(doc.toJson());126 }127 };128 //过滤 likes > 10129 //collection.find(gt("likes", 10)).forEach(printBlock);130 //过滤 10 <= likes <= 100131 //collection.find(and(Filters.gte("likes", 10), Filters.lte("likes", 100))).forEach(printBlock);

132

133 /**排序*/

134 //collection.find(Filters.exists("likes")).sort(Sorts.descending("likes")).limit(2).forEach(printBlock);

135

136 /**Projection*/

137 //Document myDoc = (Document) collection.find().projection(Projections.excludeId()).first();138 //System.out.println(myDoc.toJson());

139

140 /**ordered bulk writes*/

141 List> writes = new ArrayList>();142 writes.add(new InsertOneModel(new Document("_id", 13)));143 writes.add(new InsertOneModel(new Document("_id", 14)));144 writes.add(new InsertOneModel(new Document("_id", 15)));145 writes.add(new UpdateOneModel(new Document("_id", 10), new Document("$set", new Document("x", 101010))));146 writes.add(new DeleteOneModel(new Document("_id", 11)));147 writes.add(new ReplaceOneModel(new Document("_id", 12), new Document("_id", 12).append("x", 121212)));148 //bulkWrite默认BulkWriteOptions149 //collection.bulkWrite(writes);150 //collection.find().forEach(printBlock);151 //

152 //collection.bulkWrite(writes, new BulkWriteOptions().ordered(false));153 //collection.find().forEach(printBlock);

154

155 /**drop集合*/

156 //collection.drop();

157

158 /**drop数据库*/

159 //mongoDatabase.drop();

160 } catch(Exception e) {161 System.err.println(e.getClass().getName() + " : " +e.getMessage());162 } finally{163 //防止意外,关闭数据库连接164 //mongoClient.close();

165 }166 }167

168 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值