使用 mongoimport 时如何为空 CSV 字段设置默认值

How to set default value for empty CSV fields when using mongoimport

在使用 mongoimport 导入 CSV 文件时,是否可以为空单元格指定默认值。

我这样导入 CSV 数据:

usename,password,salt
xxx@ss.com,12345,,
xxx@ss.com,asdf,,
xxx@ss.com,ads,,

但我想将 salt 设置为一些默认值,例如 saltdefault
我怎样才能用 mongoimport 实现它,或者你有其他实现它的方法吗?

据我所知,通过 mongoimport 导入 CSV 值时没有默认值之类的东西。

但是您当然可以使用一些脚本预先准备数据,例如当使用输入 CSV 文件作为参数调用时,以下 python 脚本将完成这项工作

import csv
import sys

in_name = sys.argv[1]
out_name = in_name + '.post' 

with open(in_name, newline="") as in_f, open(out_name, "w", newline="") as out_f:
    reader = csv.reader(in_f)
    writer = csv.writer(out_f)

    # Keep heading
    row = next(reader) 
    writer.writerow(row)

    for row in reader:   
        if len(row[2]) == 0:
            row[2] = 'Your default' 
        writer.writerow(row)  

另一种解决方案是首先将您的数据导入 MongoDB 集合,然后 运行 一个针对它的更新命令用空 salt.

填充文档