Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为mongodb做工作_Mongodb_Jobs - Fatal编程技术网

如何为mongodb做工作

如何为mongodb做工作,mongodb,jobs,Mongodb,Jobs,我必须做一项工作,确定是否存在.json或.csv文件,并将其导入Mongo数据库。但我不知道怎么做。有人能帮我吗 数据库配置了一个包含3个分片的Mongo分片。(测试切分)。数据库配置了一个包含3个分片的Mongo分片。(TestSharding)脚本可以是bash 创建bash脚本,该脚本将检查文件是csv还是json,并将使用必要的参数启动mongoimport命令,并在加载时将文件移动到其他目录。 假设要检查的文件位于/pathToFile/文件夹中,导入文件后需要将其移动到/pathT

我必须做一项工作,确定是否存在.json或.csv文件,并将其导入Mongo数据库。但我不知道怎么做。有人能帮我吗


数据库配置了一个包含3个分片的Mongo分片。(测试切分)。数据库配置了一个包含3个分片的Mongo分片。(TestSharding)脚本可以是bash

  • 创建bash脚本,该脚本将检查文件是csv还是json,并将使用必要的参数启动mongoimport命令,并在加载时将文件移动到其他目录。 假设要检查的文件位于/pathToFile/文件夹中,导入文件后需要将其移动到/pathToImportedFiles/
  • 您的bash脚本可以按如下方式启动:

    for fname in $(find /pathToFIle/* -maxdepth 1 -type f) 
        do  
        if [[ $file == *.csv ]]; mongoimport csv ;fi;
        if [[ $file == *.json ]]; mongoimport json  ;fi;
    done
    
    mongoimport json文件示例:

    mongoimport --port 27017 --db theDatabase --collection theCollection --file /pathToFile/theJsonFile.json --jsonArray
    
    mongoimport csv文件示例:

    mongoimport --port 27017 --db theDatabase --collection theCollection --type csv --fields "a,b,c" --file /pathToFile/theCsvFile.csv
    
  • 以必要的周期性向应用程序用户crontab(crontab-e)添加bash脚本。 每天05:30检查和加载文件的crontab条目可能如下所示:

    for fname in $(find /pathToFIle/* -maxdepth 1 -type f) 
        do  
        if [[ $file == *.csv ]]; mongoimport csv ;fi;
        if [[ $file == *.json ]]; mongoimport json  ;fi;
    done
    
    30 05***/pathToScript/loader.sh


  • 如果您需要帮助,您必须指定如何实现该目标-使用bash脚本、其他编程语言的脚本等。指定您的设置和要实现的目标。请编辑您的问题并提供更多信息。数据库配置了一个包含3个碎片的Mongo碎片。(测试切分)。数据库配置了一个包含3个分片的Mongo分片。(TestSharding)并且脚本可以是bash。如果您需要在linux中执行定期作业,最简单的方法是创建bash脚本并将其作为cronjob添加到crontab,如果您的数据库是分片的,则作业需要通过mongos(mongodb分片群集路由服务)加载数据