Powershell 将参数传递给 MongoDB.Driver.QueryDocument

Powershell Passing parameter to MongoDB.Driver.QueryDocument

我可以将字符串参数传递给 MongoDB.Driver.QueryDocument 吗?

对于以下相同的脚本,1) returns 文档和 2) returns 空。

1)

$query = new-object MongoDB.Driver.QueryDocument("item", "car")
$found = $mongoCollection.FindOne($query)

2)

$comp = "car"
function Get-Document($comp){

    $query = new-object MongoDB.Driver.QueryDocument("item", $comp)
    $found = $mongoCollection.FindOne($query)
    return $found
}

$result = Get-Document $comp
Write-host $result

我没有使用 MongoDB 的经验,但我不明白为什么第二个代码片段不能工作,而第一个可以。我认为问题在于您的函数实际上 return 什么都没有。

PowerShell 函数 return 将所有未捕获的输出输出给调用者,因此您需要删除赋值 $found = ... 以使函数 return 成为结果(当然您需要也可以调用它):

$comp = "car"

function Get-Document($item){
    $query = new-object MongoDB.Driver.QueryDocument("item", $item)
    $mongoCollection.FindOne($query)
}

$found = Get-Document $comp