【问题标题】:mongoimport from PowerShell来自 PowerShell 的 mongoimport
【发布时间】:2018-06-24 00:46:09
【问题描述】:

我正在尝试编写一个监视文件夹的 PowerShell 脚本,以便每当将新的 JSON 文件添加到文件夹或其任何子文件夹时,都会运行 mongoimport 命令以将该 JSON 文件导入 MongoDB。我编写了以下脚本,但它似乎没有完成这项工作。感觉Invoke-Command部分有问题。

### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\git\DataChain\UploadStation\to"
$watcher.Filter = "*.json"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true  

### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
$action = {
    $path = $Event.SourceEventArgs.FullPath
    Invoke-Command -FilePath "C:\Program Files\MongoDB\Server\3.4\bin\mongoimport.exe" -ArgumentList (db myDB collection jsonFiles type json file $path)
}
### DECIDE WHICH EVENTS SHOULD BE WATCHED 
Register-ObjectEvent $watcher "Created" -Action $action
while ($true) {Start-Sleep 5}

【问题讨论】:

    标签: mongodb powershell


    【解决方案1】:

    使用call operator (&) 和splat 参数代替Invoke-Command

    $params = '--db', 'myDB',
              '--collection', 'jsonFiles',
              '--type', 'json',
              '--file', $Event.SourceEventArgs.FullPath
    & "C:\Program Files\MongoDB\Server\3.4\bin\mongoimport.exe" @params
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多