一、問題描述:
需要將工作界面上的一些已經離職的用戶狀態改為失效,並備注為離職
二、需要准備/拿到手的工具/條件/數據:
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