Como fazer uma consulta comlex ao MongoDB com o Powershell
Preciso recuperar dados do mongoDB usando o Powershell. Digamos que eu tenho a coleção db.orders e preciso recuperar apenas os pedidos criados durante a semana passada e recuperar apenas colunas específicas, por exemplo, campos _id, status, createdAt.
Esquema de coleção de pedidos
{
"_id": ObjectId("56cf9bab78e9fd46ec557d69"),
"status" : "ordered",
...
"total": 343,
"createdAt": ISODate("2016-01-15T17:29:09.342Z")
}
Eu posso consultá-lo no mongo shell assim
db.orders.find({
"createdAt" : {
$lt: new Date(),
$gte: new Date(new Date().setDate(new Date().getDate()-7))
}
}, {_id: 1, status: 1, createdAt: 1 })
Mas eu preciso fazer isso no Powershell, aqui está o meu script do Powershell com uma consulta simples que extrai exatamente o criadoNa data ... não no intervalo de datas
$mongoDbDriverPath = "C:\mongodb\bin"
$dbName = "Orders"
$collectionName = "orders"
Add-Type -Path "$($mongoDbDriverPath)\MongoDB.Bson.dll"
Add-Type -Path "$($mongoDbDriverPath)\MongoDB.Driver.dll"
$db =[MongoDB.Driver.MongoDatabase]::Create("mongodb://localhost:27017/$($dbName)")
$collection = $db[$collectionName]
$query = [MongoDB.Driver.Builders.Query]::EQ("createdAt","2016-01-15T17:29:09.342Z")
$results = $collection.find($query)
Na API do MongoDB .NET Driver, não posso fazer consultas complexas ou pelo menos não sei como. Posso consultar de acordo com uma coluna específica, mas não tornando complexa e não posso limitar a saída para alguns campos.
Por favor, informe se alguém souber como. Nota: não é um projeto .Net, apenas usa o driver mongoDB .net, mas é executado no Powershell.