Как загрузить данные в MongoDB с помощью Windows PowerShell?
Я установил MongoDB на компьютер с Windows. Он находится на пути: "C:\Program Files\MongoDB\Server\4.0\bin\". Я создал нужную папку \data\db на диске C. Я запустил mongod.exe, и он работает. Я хотел бы загрузить файл CSV в базу данных MongoDB.
Используя команду .\mongoimport.exe --help, мы можем заметить, что в PowerShell для загрузки данных в MongoDB мы используем не дефис-минус, а двоеточие.
Я создал этот код:
$params = 'db:', 'db_name',
'collection:', 'collection_name',
'type:', 'file_type',
'file:', 'file_name',
'headerline'
& "C:\Program Files\MongoDB\Server\4.0\bin\mongoimport.exe" @params
и пытаюсь выполнить его в PowerShell в папке, где хранится файл.
Отображается сообщение об ошибке:
error validating settings: only one positional argument is allowed try 'mongoimport --help' for more information

Параметры включаются как один элемент в массив:
$params = @(
'db:db_name',
'collection:collection_name',
'type:file_type',
'file:file_name',
'headerline'
)
&"C:\Program Files\MongoDB\Server\4.0\bin\mongoimport.exe" @params
Вы не должны опускать дефисы в именах параметров, и я не уверен, что двоеточия допустимы.
$params = '--db', 'db_name',
'--collection', 'collection_name',
'--type', 'file_type',
'--file', 'file_name',
'--headerline'
& 'C:\Program Files\MongoDB\Server\4.0\bin\mongoimport.exe' $params
Я не думаю, что в этом случае имеет значение, используете ли вы разбрызгивание (@params) или обычную передачу аргументов ($params).
Действительно, очень странно. Я нашел ваш старый пост, где я скопировал код и обновил его в соответствии со своими потребностями. Не работал (был с дефисами). Я удалил их, и, насколько я помню, я смог загрузить данные, но не смог их воспроизвести :). Этот код, размещенный здесь, работает ;) с дефисами. Я не понимаю.