1. 程式人生 > 其它 >實驗三 類與物件二

實驗三 類與物件二

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();
        }
    }
}