# Mongodb ###### tags: `database` `mongodb` DB比較重要的是保護機制 最好一開始就設定帳號密碼(曾經被綁架過...還好是測試用DB) mongoDB設定的方式是 1. 先進入mongo ```bash= $ mongod ``` 3. 輸入設定值 ``` > use admin > db.createUser( { user: "root", pwd: "YOURPASSWORD", roles: [{ role: "root", db: "admin"}] } ) ``` 這樣可以保障基本的資料庫 如果想要分配用戶的話就去別的資料庫像以上的方法創建 role的部分可以更改成read或是write等等權限 ## 指令 ### 切換資料庫 ``` > use db ``` ### 找資料 ``` > db.collection.find() > db.collection.findOne(index) ``` ### 刪除資料 ``` > db.collection.delet() > db.collection.deleteOne(index) ``` 其他通常會在程式碼裡面操作 基本指令是差不多的 ***實作ETL時發生的問題*** > 一次拉了太多資料回家,導致OOM。 在find裡面設定batch_size可以有效減少memory usage > 主要是因為find是一次把所有拉回來,設定batch_size可以調整拉回來的數量,只是記得要使用for迴圈把資料拿出來,他才能繼續找尋下一個batch的資料。