【问题标题】:MongoDB: add a date using mongoimport with --columnsHaveTypes --headerlineMongoDB:使用 mongoimport 和 --columnsHaveTypes --headerline 添加日期
【发布时间】:2019-09-25 17:02:37
【问题描述】:

我有一个 test.tsv TSV 文件,其标题如下所示

sample.string() organism.string()   capture.string()    sex.string()

我正在使用以下命令将我的文件导入 mongodb

mongoimport --quiet -d somedb --collection=somecollection --file=test.tsv --type tsv --mode upsert --upsertFields sample --columnsHaveTypes --headerline

我希望在我的文件导入时添加 date 以下 mongodb 格式。

我在 mongodb 中找到了 a way,但我似乎找不到任何关于 mongoimport 的信息。

是否有如下所示的命令(或解决方法)并允许我们添加文件内容的日期?

mongoimport --quiet -d somedb --collection=somecollection --file=test.tsv --type tsv --mode upsert --upsertFields sample --columnsHaveTypes --headerline --addDate

提前致谢。

【问题讨论】:

    标签: mongodb mongoimport


    【解决方案1】:

    我找到了解决方法:

    首先,通过一些格式从 bash 中获取日期:

    date=$(date -u +"%d-%m-%Y %T")
    

    现在,将此变量添加到file.tsv 中的所有行,如下所示:

    awk -v date="$date" '{print $0 "\t" date}' file.tsv
    

    然后,我们可以通过添加日期格式类型来更改表头

    $ sed -i '1s/.*/Sample.string()\tOrganism.string()\tCapture.string()\tSex.string()\tDate.date(02-01-2006 15:04:05)/' file.tsv
    $ head file.tsv
    Sample.string()     Organism.string()     Capture.string()     Sex.string()     Date.date(02-01-2006 15:04:05)
    

    然后,我们可以用 mongoimport 导入:

    $ mongoimport -d somedb --collection=somecollection --file=file.tsv --type tsv --mode upsert --upsertFields Sample --columnsHaveTypes --headerline
    2019-09-30T11:23:37.934+0200    connected to: xxxx
    2019-09-30T11:23:37.940+0200    imported 1 document
    

    【讨论】:

      猜你喜欢
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      相关资源
      最近更新 更多