在Java應(yīng)用程序中操作 MongoDB 數(shù)據(jù)
1. 啟動MongoDB Shell
2. 切換到admin數(shù)據(jù)庫,使用root賬戶
3.開啟Eclipse,創(chuàng)建Java Project項(xiàng)目,命名為MongoJava
File --> New --> Java Project
4.在MongoJava項(xiàng)目下新建包,包名為mongo
MongoJava右鍵 --> New --> mongo
5. 在mongo包下新建類,類名為mimalianjie
mongo右鍵 --> New --> Class
6. 添加項(xiàng)目依賴的jar包,右鍵單擊MongoJava,選擇Import
7. 選擇General中的File System,點(diǎn)擊Next
8. 選擇存放mongo連接java的驅(qū)動程序的文件夾,并進(jìn)行勾選Create top-level folder
9. 選中導(dǎo)入的文件夾中的mongo-java-driver-3.2.2.jar,右擊選擇Build Path中的Add to Build Path。
10. 連接數(shù)據(jù)庫:編寫代碼,功能為連接Mongodb數(shù)據(jù)庫。我們需要指定數(shù)據(jù)庫名稱,如果指定的數(shù)據(jù)庫不存在,mongo會自動創(chuàng)建數(shù)據(jù)庫
package mongo;
import java.util.ArrayList;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoDatabase;
public class mimalianjie {
public static void main(String[] args) {
try {
ServerAddress serverAddress = new ServerAddress("localhost",27017);
ArrayList<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("root", "admin", "strongs".toCharArray());
ArrayList<MongoCredential> credentials = new
ArrayList<MongoCredential>();
credentials.add(credential);
MongoClient mongoClient = new MongoClient(addrs,credentials);
MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");
System.out.println("Connect to database successfully");
} catch (Exception e) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
11. 創(chuàng)建集合:與上述步驟相同,在mongo包下新建類,類名為chuangjianjihe,編寫代碼,功能為在test庫下創(chuàng)建集合mycol(使用com.mongodb.client.MongoDatabase類中的createCollection()來創(chuàng)建集合)
package mongo;
import java.util.ArrayList;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoDatabase;
public class chuanjianjihe {
public static void main(String[] args) {
try {
ServerAddress serverAddress = new ServerAddress("localhost",27017);
ArrayList<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("root","admin","strongs".toCharArray());
ArrayList<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
MongoClient mongoClient = new MongoClient(addrs,credentials);
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
System.out.println("Connect to database successfully");
mongoDatabase.createCollection("mycol");
System.out.println("集合mycol創(chuàng)建成功");
}catch (Exception e) {
System.err.println( e.getClass().getName() + ": " + e.getMessage());
}
}
}
12. 在mongodb中進(jìn)行驗(yàn)證
13. 獲取集合:在mongo包下新建類,名為huoqujihe,并編寫代碼,功能為獲取所需集合(使用com.mongodb.client.MongoDatabase類的 getCollection() 方法來獲取一個(gè)集合)
package mongo;
import java.util.ArrayList;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
public class huoqujihe {
public static void main(String[] args) {
try {
ServerAddress serverAddress = new ServerAddress("localhost",27017);
ArrayList<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("root","admin","strongs".toCharArray());
ArrayList<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
MongoClient mongoClient = new MongoClient(addrs,credentials);
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
System.out.println("Connect to database successfully");
MongoCollection<org.bson.Document> collection = mongoDatabase.getCollection("mycol");
System.out.println("集合mycol選擇成功");
} catch (Exception e) {
System.err.println( e.getClass().getName() + ": " + e.getMessage());
}
}
}
14.插入文檔:在mongo包中新建類,名為charuwendang,功能為連接test庫,選擇mycol集合并向其中插入文檔。(使用com.mongodb.client.MongoCollection類的insertMany()方法來插入一個(gè)文檔)
package mongo;
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
public class charuwendang {
public static void main (String[] args) {
try {
ServerAddress serverAddress = new ServerAddress("localhost",27017);
ArrayList<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("root"
,"admin","strongs".toCharArray());
ArrayList<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
MongoClient mongoClient = new MongoClient(addrs,credentials);
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
System.out.println("Connect to database successfully");
MongoCollection<org.bson.Document> collection = mongoDatabase.getCollection("mycol");
System.out.println("集合mycol選擇成功");
Document document = new Document("name", "zhangyudashuju").
append("description", "YXCX").
append("likes", 100).
append("location", "BJ");
List<Document> documents = new ArrayList<Document>();
documents.add(document);
collection.insertMany(documents);
System.out.println("文檔插入成功");
}catch(Exception e) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
15.在mongodb中進(jìn)行查詢驗(yàn)證
16. 檢索文檔:在mongo包中新建類,名為jiansuosuoyouwendang,功能為檢索test庫下,mycol集合中的所有文檔(使用 com.mongodb.client.MongoCollection 類中的 find() 方法來獲取集合中的所有文檔)
package mongo;
import java.util.ArrayList;
import org.bson.Document;
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;
public class jiansuosuoyouwendang {
public static void main( String args[] ){
try{
ServerAddress serverAddress = new ServerAddress("localhost",27017);
ArrayList<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("root"
,"admin", "strongs".toCharArray());
ArrayList<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
MongoClient mongoClient = new MongoClient(addrs,credentials);
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
System.out.println("Connect to database successfully");
MongoCollection<org.bson.Document> collection = mongoDatabase.getCollection("mycol");
System.out.println("集合mycol選擇成功");
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
while(mongoCursor.hasNext()){
System.out.println(mongoCursor.next());
}
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
17. 更新文檔:在mongo包中新建類,名為gengxinwendang,功能為選擇test庫下mycol集合,將文檔中的likes=100改為likes=200(使用 com.mongodb.client.MongoCollection 類中的updateMany()方法來更新集合中的文檔)
package mongo;
import java.util.ArrayList;
import org.bson.Document;
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;
public class gengxinwendang {
public static void main( String args[] ){
try{
ServerAddress serverAddress = new ServerAddress("localhost",27017);
ArrayList<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("root"
,"admin", "strongs".toCharArray());
ArrayList<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
MongoClient mongoClient = new MongoClient(addrs,credentials);
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
System.out.println("Connect to database successfully");
MongoCollection<org.bson.Document> collection = mongoDatabase.getCollection("mycol");
System.out.println("集合mycol選擇成功");
collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
while(mongoCursor.hasNext()){
System.out.println(mongoCursor.next());
}
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
18. 在mongodb中進(jìn)行查詢驗(yàn)證
19. 刪除文檔:在mongo包中新建類,名為sanchuwendang,功能為選擇test庫下mycol集合,刪除所有符合條件(likes=200)的文檔。(使用com.mongodb.DBCollection類中的findOne()方法來獲取第一個(gè)文檔,然后使用remove方法刪除)
package mongo;
import java.util.ArrayList;
import org.bson.Document;
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;
public class shanchuwendang {
public static void main( String args[] ){
try{
ServerAddress serverAddress = new ServerAddress("localhost",27017);
ArrayList<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("root"
,"admin", "strongs".toCharArray());
ArrayList<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
MongoClient mongoClient = new MongoClient(addrs,credentials);
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
System.out.println("Connect to database successfully");
MongoCollection<org.bson.Document> collection = mongoDatabase.getCollection("mycol");
System.out.println("集合mycol選擇成功");
//刪除符合條件的第一個(gè)文檔
//collection.deleteOne(Filters.eq("likes", 200));
//刪除所有符合條件的文檔
collection.deleteMany (Filters.eq("likes", 200));
//檢索查看結(jié)果
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
while(mongoCursor.hasNext()){
System.out.println(mongoCursor.next());
}
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
20. 在mongodb中進(jìn)行查詢驗(yàn)證
查詢結(jié)果為空,證明文檔已被刪除。文章來源:http://www.zghlxwxcb.cn/news/detail-685866.html
至此,實(shí)驗(yàn)結(jié)束!文章來源地址http://www.zghlxwxcb.cn/news/detail-685866.html
到了這里,關(guān)于MongoDB實(shí)驗(yàn)——在Java應(yīng)用程序中操作 MongoDB 數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!