MongoDB學習筆記-安裝部署和簡易API操作
阿新 • • 發佈:2018-12-24
import java.util.ArrayList; import java.util.List; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; public class MongoDBClient { private MongoClient mongoClient = null; private MongoDBClient() { initMongoClient(); } private static class MongoDBClientHolder { private static final MongoDBClient INSTANCE = new MongoDBClient(); } public static final MongoDBClient getInstance() { return MongoDBClientHolder.INSTANCE; } private void initMongoClient() { List<ServerAddress> serverAddressList = new ArrayList<ServerAddress>(); ServerAddress serverAddress = new ServerAddress("192.168.0.103", 27017); serverAddressList.add(serverAddress); List<MongoCredential> credentials = new ArrayList<MongoCredential>(); MongoCredential credential = MongoCredential.createCredential( "root", "admin", "123456".toCharArray()); credentials.add(credential); mongoClient = new MongoClient(serverAddressList, credentials); } public MongoClient getClient() { return mongoClient; } }
import java.util.ArrayList; import java.util.List; import org.bson.Document; import org.junit.Test; import com.mongodb.BasicDBObject; import com.mongodb.MongoClient; import com.mongodb.bulk.BulkWriteResult; 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.DeleteOneModel; import com.mongodb.client.model.InsertOneModel; import com.mongodb.client.model.UpdateOneModel; import com.mongodb.client.model.WriteModel; import com.mongodb.client.result.UpdateResult; public class MongoDBClientTest { @Test public void insertCollection() { MongoClient mongoClient = MongoDBClient.getInstance().getClient(); MongoDatabase database = mongoClient.getDatabase("admin"); database.createCollection("test"); mongoClient.close(); } @Test public void insertOne() { MongoClient mongoClient = MongoDBClient.getInstance().getClient(); MongoDatabase database = mongoClient.getDatabase("admin"); MongoCollection<Document> collection = database.getCollection("test"); Document document1 = new Document(); document1.append("id", 1).append("username", "zhangsan").append("password", "zhangsan"); collection.insertOne(document1); Document document2 = new Document(); document2.put("id", 2); document2.put("username", "lisi"); document2.put("password", "lisi"); collection.insertOne(document2); mongoClient.close(); } @Test public void insertMany() { MongoClient mongoClient = MongoDBClient.getInstance().getClient(); MongoDatabase database = mongoClient.getDatabase("admin"); MongoCollection<Document> collection = database.getCollection("test"); List<Document> documents = new ArrayList<Document>(); Document document = null; for (int i = 10; i < 20; i++) { document = new Document(); document.append("id", i).append("username", "lisi" + i).append("password", "lisi" + i); documents.add(document); } collection.insertMany(documents); mongoClient.close(); } @Test public void updateOne() { MongoClient mongoClient = MongoDBClient.getInstance().getClient(); MongoDatabase database = mongoClient.getDatabase("admin"); MongoCollection<Document> collection = database.getCollection("test"); Document filter = new Document(); filter.put("id", 4); filter.put("username", "lisi"); filter.put("password", "lisi"); Document updateContent = new Document(); updateContent.put("username", "lisinew"); updateContent.put("password", "lisinew"); BasicDBObject update = new BasicDBObject("$set", updateContent); UpdateResult result = collection.updateOne(filter, update); System.out.println(result.wasAcknowledged()); System.out.println(result.getMatchedCount()); System.out.println(result.getModifiedCount()); } @Test public void updateMany() { MongoClient mongoClient = MongoDBClient.getInstance().getClient(); MongoDatabase database = mongoClient.getDatabase("admin"); MongoCollection<Document> collection = database.getCollection("test"); Document filter = new Document(); filter.put("username", "zhangsan"); Document updateContent = new Document(); updateContent.put("username", "zhangsanupdate"); updateContent.put("password", "zhangsanupdate"); Document update = new Document("$set", updateContent); UpdateResult result = collection.updateMany(filter, update); System.out.println(result.wasAcknowledged()); System.out.println(result.getMatchedCount()); System.out.println(result.getModifiedCount()); } @Test public void delete() { MongoClient mongoClient = MongoDBClient.getInstance().getClient(); MongoDatabase database = mongoClient.getDatabase("admin"); MongoCollection<Document> collection = database.getCollection("test"); Document filter = new Document(); filter.put("id", 2); Document deleteDocuemnt = collection.findOneAndDelete(filter); System.out.println(deleteDocuemnt); } @Test public void findByFilter() { MongoClient mongoClient = MongoDBClient.getInstance().getClient(); MongoDatabase database = mongoClient.getDatabase("admin"); MongoCollection<Document> collection = database.getCollection("test"); Document filter = new Document(); filter.put("id", 1); FindIterable<Document> docs = collection.find(filter); MongoCursor<Document> iterator = docs.iterator(); while (iterator.hasNext()) { Document doc = iterator.next(); System.out.println(doc); } mongoClient.close(); } @Test public void findAll() { MongoClient mongoClient = MongoDBClient.getInstance().getClient(); MongoDatabase database = mongoClient.getDatabase("admin"); MongoCollection<Document> collection = database.getCollection("test"); FindIterable<Document> docs = collection.find(); MongoCursor<Document> iterator = docs.iterator(); while (iterator.hasNext()) { Document doc = iterator.next(); System.out.println(doc); } mongoClient.close(); } @Test public void findAllWithPagination() { MongoClient mongoClient = MongoDBClient.getInstance().getClient(); MongoDatabase database = mongoClient.getDatabase("admin"); MongoCollection<Document> collection = database.getCollection("test"); FindIterable<Document> docs = collection.find().skip(5).limit(5); MongoCursor<Document> iterator = docs.iterator(); while (iterator.hasNext()) { Document doc = iterator.next(); System.out.println(doc); } mongoClient.close(); } @Test public void bulk() { MongoClient mongoClient = MongoDBClient.getInstance().getClient(); MongoDatabase database = mongoClient.getDatabase("admin"); MongoCollection<Document> collection = database.getCollection("test"); List<WriteModel<Document>> requests = new ArrayList<WriteModel<Document>>(); Document insertOneDoc = new Document(); insertOneDoc.append("id", 6).append("username", "zhangsan6").append("password", "zhangsan6"); InsertOneModel<Document> insertOne = new InsertOneModel<Document>(insertOneDoc); requests.add(insertOne); Document filter = new Document(); filter.put("id", 4); Document updateContent = new Document(); updateContent.put("username", "lisibulkupdate"); updateContent.put("password", "lisibulkupdate"); Document update = new Document("$set", updateContent); UpdateOneModel<Document> updateOne = new UpdateOneModel<Document>(filter, update); requests.add(updateOne); Document deleteFilter = new Document(); deleteFilter.put("id", 4); DeleteOneModel<Document> deleteOne = new DeleteOneModel<Document>(deleteFilter); requests.add(deleteOne); BulkWriteResult bwr = collection.bulkWrite(requests); System.out.println(bwr.getMatchedCount()); System.out.println(bwr.getInsertedCount()); System.out.println(bwr.getModifiedCount()); System.out.println(bwr.getDeletedCount()); mongoClient.close(); } }