使用powershell按日期范围查询MongoDB的问题

时间:2016-04-13 13:16:56

标签: mongodb powershell mongodb-.net-driver

我无法在powershell中查询我的查询以适应日期范围。下面是我的mongodb doc和powershell代码。我必须切换到UTC时间以匹配mongodb中的时间。我已经尝试了几种不同的日期格式,但在查询日期范围甚至特定日期时仍然找不到任何记录。任何帮助将不胜感激。

MongoDB的:

{ 
"_id" : ObjectId("570d0955ef8ca41768d887a8"), 
"HostName" : "blah.foo.bar", 
"Maintenance" : false, 
"Process" : false, 
"ProcessDateTime" : ISODate("2016-04-12T14:39:53.000+0000")
}

Powershell的:

$mongoDbDriverPath = "C:\utilities\mongoDB\"
$dbName = "blahProd"
$collectionName = "blah"
Add-Type -Path "$($mongoDbDriverPath)\MongoDB.Bson.dll"
Add-Type -Path "$($mongoDbDriverPath)\MongoDB.Driver.dll"
$db = [MongoDB.Driver.MongoDatabase]::Create("mongodb://localhost/($dbname)")
$collection = $db[$collectionName]

$rundate = Get-Date
$rundate = $rundate.AddMinutes(-30)
$rundate_utc = $rundate.ToUniversalTime()
$ISOrundate_utc = $rundate_utc.ToString("yyyy-MM-ddTHH:mm:ssZ")

$query =[MongoDB.Driver.Builders.Query]::GTE"ProcessDateTime",$ISOrundate_utc)

$results = $collection.find($query)
foreach ($result in $results) {
    write-host $result["HostName"] " - " $result["ProcessDateTime"]
}

1 个答案:

答案 0 :(得分:0)

$query2 = [MongoDB.Driver.Builders.Query]::GTE("Time", [dateTime]"2021-06-01")
$query3 = [MongoDB.Driver.Builders.Query]::LT("Time", [dateTime]"2021-06-09")

似乎可以解决问题。