mongodb使用_遍歷列表中的元素,作為變量,循環修改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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM