Я использовал модуль командлетов mongodb на github, который позволяет легко импортировать в mongodb из powershell:
https://github.com/nightroman/Mdbc/blob/master/README.md
Импорт данных работает как яможно ожидать, за исключением даты и времени, которые я импортирую.Они заканчиваются как строка после завершения импорта.
Ниже приведен мой код, как вы увидите, я использую командлет powershell get-date для преобразования даты в 24-часовой формат dateTime, который исключается при ручном изменении типа данных в mongodb compass.
$creation_time = gci -recurse -File | get-itemproperty | select -ExpandProperty CreationTime | get-date -Format 'yyyy-MM-dd HH:mm:ss.fff'
$last_access_time = gci -recurse -File | get-itemproperty | select -ExpandProperty LastAccessTime | get-date -Format 'yyyy-MM-dd HH:mm:ss.fff'
$last_write_time = gci -recurse -File | get-itemproperty | select -ExpandProperty LastWriteTime | get-date -Format 'yyyy-MM-dd HH:mm:ss.fff'
$file_extension = gci -recurse -File | get-itemproperty | select -ExpandProperty Extension
$file_base_name = gci -recurse -File | get-itemproperty | select -ExpandProperty BaseName
$file_path = gci -recurse -File | get-itemproperty | select -ExpandProperty DirectoryName
$adsObjects = New-Object System.Collections.ArrayList
for($i=0; $i -lt $creation_time.Length; $i++){
$object = New-Object System.Object
$object | Add-Member -type NoteProperty –Name _id –Value $file_base_name[$i]
$object | Add-Member -type NoteProperty –Name Extension –Value $file_extension[$i]
$object | Add-Member -type NoteProperty –Name Directory –Value $file_path[$i]
$object | Add-Member -type NoteProperty –Name CreateDate –Value $creation_time[$i]
$object | Add-Member -type NoteProperty –Name Accesstime –Value $last_write_time[$i]
$object | Add-Member -type NoteProperty –Name Writetime –Value $last_access_time[$i]
$adsObjects.Add($object)
}
# Load the module
Import-Module Mdbc
# Connect the new collection test.test
Connect-Mdbc . test test -NewCollection
# add the objects to the collection
$adsObjects | Add-MdbcData
# Get all data as custom objects and show them in a table
Get-MdbcData -As PS | Format-Table -AutoSize | Out-String
Кто-нибудь знает, как я могу гарантировать, что значения дат, которые я отправляю, могут быть установлены в формат даты?Это важная вещь для приложения, над которым я работаю, поскольку есть запросы диапазона дат, которые мне нужно включить.