一、問題描述: 需要將工作界面上的一些已經離職的用戶狀態改為失效,並備註為離職 二、需要準備/拿到手的工具/條件/數據: 1.已離職人員名單(excel格式) 2.任意mongodb工具(筆者使用的是NoSQLBooster for Mongodb) 3.連接好的mongodb資料庫(有些網路/策略 ...
一、問題描述:
需要將工作界面上的一些已經離職的用戶狀態改為失效,並備註為離職
二、需要準備/拿到手的工具/條件/數據:
1.已離職人員名單(excel格式)
2.任意mongodb工具(筆者使用的是NoSQLBooster for Mongodb)
3.連接好的mongodb資料庫(有些網路/策略不同,直連無法成功的,可以嘗試使用mongodb中的SSH,在筆者的連接工具/Connections/Edit/SSH中可以進行設置)
修改mongodb中列表中多個元素,遍歷其中的元素,作為變數,執行mongodb的修改
4.Notepad++ 軟體
三、解決步驟:
1.需要將execl格式的人員名單取出放入自己設定的列表中(如arr = [" ", " " ]):
1.1.選取所需的列數據,複製後,粘貼到新建excel表格中; # 特別註意:粘貼時,應選擇第一個單元格,然後右擊,在彈出的視窗中,選擇‘選擇性粘貼’,再選擇‘轉置'
1.2.將排成一行的數據另存到桌面上,保存類型選擇csv(逗號分隔),後續彈出的視窗一直選是(可能會說不相容什麼的,不管,關閉時彈出的視窗也選是)
1.3.給csv文件中的數據添加單/雙引號: 右鍵點擊桌面上的csv文件,選擇“edit with Notepad++"打開,
ctrl+h -> 勾上正則 -> 查找逗號:, -> 替換成:",";
ctrl+h -> 勾上正則 -> 查找行頭:^ -> 替換成:";
ctrl+h -> 勾上正則 -> 查找行尾:$ -> 替換成:";(第三步可能是多餘的)
1.4.複製處理完成後的數據,放入列表中,即:arr = ["zhangsan","lisi"]
2.進入NoSQLBooster for Mongodb中,選擇需要修改的數據所在的庫和表,輸入以下語句,即可更新人員狀態:
var arr = ["zhangsan","lisi"];
for (var i=0; i<arr.length; i++){
db.USER.update({"code": arr[i]}, {"$set": {"status" : "invalid", "memo" : "離職"}}); # USER、 "status"、"memo"為資料庫對應的表名、人員狀態、備註的欄位名
}
四、所用到的技巧/技術,以及參考鏈接:
1.excel數據轉為帶雙引號的數據: https://www.phpfans.net/ask/quiz1/92901015155.html
2.mongdb的迴圈修改(筆者修改的不是一條語句中的多個相同值,而是多條語句中的一個值):https://www.jianshu.com/p/1f02dcba779c
# 若想修改的一條語句中的多個相同值,可參考https://blog.csdn.net/xc_zhou/article/details/80994787或https://blog.csdn.net/jsdxshi/article/details/72841283