實驗三 類與物件二
阿新 • • 發佈:2021-11-09
MongoDB 概念解析 https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html https://www.jianshu.com/p/ebe344668954 建立使用者 https://www.cnblogs.com/alen-liu-sz/p/12975593.html https://www.mongodb.com/try/download/community 下載 tar -zxvf mongodb-linux-x86_64-rhel80-5.0.3.tgz centos8 systemctl stop firewalld 依賴 sudo yum install libcurl openssl 新增配置: [root@localhost etc]# less /etc/mongo.cnf net: port: 8888 #bindIp: 127.0.0.1 bindIpAll: true ipv6: true 啟動 ./mongod --config /etc/mongo.cnf --dbpath /home/xingminghui/soft/mongodb/mongodb-linux-x86_64-rhel80-5.0.3/lib/mongo --logpath /home/xingminghui/soft/mongodb/mongodb-linux-x86_64-rhel80-5.0.3/log/mongodb/mongod.log --fork 停止 ./mongod --dbpath /home/xingminghui/soft/mongodb/mongodb-linux-x86_64-rhel80-5.0.3/lib/mongo --logpath /home/xingminghui/soft/mongodb/mongodb-linux-x86_64-rhel80-5.0.3/log/mongodb/mongod.log --shutdown 開啟客戶端 ./mongo 預設用test資料庫 ./mongo 127.0.0.1:8888 mongodb://admin:123456@localhost/ 登入localhost的admin資料庫 mongodb://xmh:xmh@localhost/xmhdb 使用使用者名稱xmh,密碼xmh登入localhost的test資料庫。 use admin 待驗證 db.createUser( { user: "adminUser", pwd: "adminPass", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) show dbs 檢視資料來源 建立文件,在 MongoDB 中,你不需要建立集合。當你插入一些文件時,MongoDB 會自動建立集合。 > db.mycol2.insert({"name" : "my菜鳥教程"}) db.mycol2.insert({"site":"www.google.com","name":"Google"}) db.mycol2.insert({"site":"www.google.com","name":"Google"}) db.mycol2.insert({"name":"Google"}) db.mycol2.insert({"name":"Googlessss"}) db.mycol2.insert({"age":23,"site":"www.google.com","name":"Google"}) > show collections 查詢文件 db.mycol2.find().pretty() db.mycol2.find({"name":"Google"}).pretty() 指定查詢 db.mycol2.find({"name":/Google/}).pretty() 模糊查詢 更新 db.mycol2.update({"name":"Google"},{$set:{'site':'updates1'}},{multi:true}) 全部更新 刪除 db.mycol2.remove({'name':'Googlessss'}) SQL術語/概念 MongoDB術語/概念 解釋/說明 database database 資料庫 table collection 資料庫表/集合 row document 資料記錄行/文件 column field 資料欄位/域 index index 索引 table joins 表連線,MongoDB不支援 primary key primary key 主鍵,MongoDB自動將_id欄位設定為主鍵 集合就是 MongoDB 文件組,類似於 RDBMS (關係資料庫管理系統:Relational Database Management System)中的表格。 集合存在於資料庫中,集合沒有固定的結構,這意味著你在對集合可以插入不同格式和型別的資料,但通常情況下我們插入集合的資料都會有一定的關聯性。 比如,我們可以將以下不同資料結構的文件插入到集合中: {"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} {"site":"www.runoob.com","name":"菜鳥教程","num":5} <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.2.2</version> </dependency> import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import org.bson.Document; import java.util.ArrayList; import java.util.List; public class MongoDBJDBC { public static void main( String args[] ){ try{ // 連線到 mongodb 服務 MongoClient mongoClient = new MongoClient( "192.168.89.136" , 8888 ); // 連線到資料庫 MongoDatabase mongoDatabase = mongoClient.getDatabase("mongodb"); System.out.println("Connect to database successfully"); mongoDatabase.createCollection("colls"); System.out.println("集合建立成功"); MongoCollection<Document> col = mongoDatabase.getCollection("colls"); Document document = new Document("nme", "MongoDB"). append("age", 23); List<Document> documents = new ArrayList<Document>(); documents.add(document); col.insertMany(documents); System.out.println("文件插入成功"); MongoCollection<Document> collections = mongoDatabase.getCollection("colls"); FindIterable<Document> findIterable = collections.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); while(mongoCursor.hasNext()){ Document doc = mongoCursor.next(); System.out.println(doc); } }catch(Exception e){ e.printStackTrace(); } } }