java 使用MongoDB作为数据库三个不同阶段的操作记录

来源:互联网 发布:双肩背包 知乎 编辑:程序博客网 时间:2024/06/05 07:38

一、前言

这是一个很蛋疼的问题,对于一个新人来说要使用MongoDB到项目中,而且是在自学的情况下。由于技术的不断更新,新人无法知道在Internet上寻找到的技术是否是现在项目中最使用的,在这个问题上本人就很深有体会。绕得晕晕的,查询到的资料有多个版本,下面是对各mongo技术各阶段的一个记录,希望帮助到有同样命运的你!

二、本文主要内容目录

3.1——mongo第一阶段——————-java使用原生的mongo进行操作
3.2——mongo第二阶段——————-spring使用mongoTemplate进行操作
3.3——mongo第三阶段——————-spring boot使用mongoRepository进行操作

三、内容

3.1 mongo第一阶段

java原生代码操作mongodb数据库的两种方式
代码引用:原生mongo两种不同操作

package monAndMysql;  import java.util.ArrayList;  import java.util.Date;  import java.util.List;  import java.util.Set;  import org.bson.BsonDocument;  import org.bson.BsonString;  import org.bson.Document;  import org.bson.conversions.Bson;  import com.mongodb.BasicDBObject;  import com.mongodb.DB;  import com.mongodb.DBCollection;  import com.mongodb.DBCursor;  import com.mongodb.DBObject;  import com.mongodb.MongoClient;  import com.mongodb.MongoCredential;  import com.mongodb.ServerAddress;  import com.mongodb.client.FindIterable;  import com.mongodb.client.MongoCollection;  import com.mongodb.client.MongoCursor;  import com.mongodb.client.MongoDatabase;  import com.mongodb.client.model.Filters;  /**  * mongodb和mysql性能测试  *  * @author tuzongxun123  *  */  public class MonAndMysqlTest {      public static void main(String[] args) {         mongodbTest();      }      public static void mongodbTest() {         ServerAddress sa = new ServerAddress("192.168.0.7", 27017);         List<MongoCredential> mongoCredentialList = newArrayList<MongoCredential>();         // java代码连接mongodb3.0数据库验证,userName,dbName,password         mongoCredentialList.add(MongoCredential.createMongoCRCredential(                "admin", "admin", "123456".toCharArray()));         MongoClient client = new MongoClient(sa, mongoCredentialList);         // 第一种方式         // 第一种方式获取db,该方法已经不建议使用         DB mongoDB = client.getDB("mongoTest1");         DBCollection collection1 = mongoDB.getCollection("userTest1");         // 这里的数据类型是dbobject         DBObject document1 = new BasicDBObject();         document1.put("name", "mongoTest1");         document1.put("createTime", new Date().getTime());         // 插入数据         collection1.insert(document1);         // 查询数据         DBCursor cursor1 = collection1.find();         System.out.println("第一种方式插入数据的结果:");         while (cursor1.hasNext()) {             DBObject object = cursor1.next();             Set<String> keySet = object.keySet();             for (String key : keySet) {                System.out.println(key + ":" + object.get(key));             }         }         // 更改数据         DBObject query = new BasicDBObject();         DBObject update = new BasicDBObject();         query.put("name", "mongoTest1");         update.put("$set", new BasicDBObject("name", "update1"));         collection1.update(query, update);         System.out             .println("--------------------------------------------------------------------------------------");         System.out.println("第一种方式修改数据的结果:");         DBCursor cursor11 = collection1.find();         while (cursor11.hasNext()) {             DBObject object = cursor11.next();             Set<String> keySet = object.keySet();             for (String key : keySet) {                System.out.println(key + ":" + object.get(key));             }         }         // 删除数据         DBObject query1 = new BasicDBObject();         query1.put("name", "update1");         collection1.remove(query1);         System.out             .println("--------------------------------------------------------------------------------------");         System.out.println("第一种方式删除数据的结果:");         DBCursor cursor12 = collection1.find();         while (cursor12.hasNext()) {             DBObject object = cursor12.next();             Set<String> keySet = object.keySet();             for (String key : keySet) {                System.out.println(key + ":" + object.get(key));             }         }         // 第二种方式         System.out                 .println("****************************************************************************");         // 第二种方式获取db及插入数据和查询操作。推荐方式         MongoDatabase database = client.getDatabase("mongoTest2");         // 注意这里的数据类型是document         Document document2 = new Document();         document2.put("name", "mongoTest2");         document2.put("createTime", new Date().getTime());         MongoCollection collection2 = database.getCollection("userTest2");         // 插入数据         collection2.insertOne(document2);         // 查询数据,注意这里直接查询出的结果不是游标,还需要转换         FindIterable<Document> findIterable = collection2.find();         MongoCursor<Document> cursor2 = findIterable.iterator();         System.out.println("第二种方式插入数据的结果:");         while (cursor2.hasNext()) {             Document document = cursor2.next();             Set<String> keySet = document.keySet();             for (String key : keySet) {                System.out.println(key + ":" + document.get(key));             }         }         // 更改数据         Bson filter = Filters.eq("name", "mongoTest2");         BsonDocument update2 = new BsonDocument();         update2.put("$set", new BsonDocument("name", new BsonString("update2")));         collection2.updateOne(filter, update2);         System.out             .println("--------------------------------------------------------------------------------------");         MongoCursor<Document> cursor21 = findIterable.iterator();         System.out.println("第二种方式更改数据的结果:");         while (cursor21.hasNext()) {             Document document = cursor21.next();             Set<String> keySet = document.keySet();             for (String key : keySet) {                System.out.println(key + ":" + document.get(key));             }         }         // 删除数据         Bson filter2 = Filters.eq("name", "update2");         collection2.deleteOne(filter2);         System.out             .println("--------------------------------------------------------------------------------------");         MongoCursor<Document> cursor22 = findIterable.iterator();         System.out.println("第二种方式删除数据的结果:");         while (cursor22.hasNext()) {             Document document = cursor22.next();             Set<String> keySet = document.keySet();             for (String key : keySet) {                System.out.println(key + ":" + document.get(key));             }         }         // 关闭数据库连接         client.close();      }  }  

以上操作结果:
结果:

3.2 mongo第二阶段

MongoTemplate位于
import org.springframework.data.mongodb.core.MongoTemplate;

0 0