MongoDB: 使用带有 --columnsHaveTypes --headerline 的 mongoimport 添加日期
MongoDB: add a date using mongoimport with --columnsHaveTypes --headerline
我有一个 test.tsv
TSV 文件,其中 header 看起来像这样
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
我希望在导入文件时添加 mongodb 格式后的 date。
我找到了 a way to do it while in mongodb but I can't seem to find anything about mongoimport。
是否有如下所示的命令(或解决方法)允许我们添加文件内容的日期?
mongoimport --quiet -d somedb --collection=somecollection --file=test.tsv --type tsv --mode upsert --upsertFields sample --columnsHaveTypes --headerline --addDate
提前致谢。
我找到了一个解决方法:
首先,从 bash 中获取具有某种格式的日期:
date=$(date -u +"%d-%m-%Y %T")
现在,将此变量添加到 file.tsv
中的所有行,如下所示:
awk -v date="$date" '{print [=11=] "\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
我有一个 test.tsv
TSV 文件,其中 header 看起来像这样
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
我希望在导入文件时添加 mongodb 格式后的 date。
我找到了 a way to do it while in mongodb but I can't seem to find anything about mongoimport。
是否有如下所示的命令(或解决方法)允许我们添加文件内容的日期?
mongoimport --quiet -d somedb --collection=somecollection --file=test.tsv --type tsv --mode upsert --upsertFields sample --columnsHaveTypes --headerline --addDate
提前致谢。
我找到了一个解决方法:
首先,从 bash 中获取具有某种格式的日期:
date=$(date -u +"%d-%m-%Y %T")
现在,将此变量添加到 file.tsv
中的所有行,如下所示:
awk -v date="$date" '{print [=11=] "\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