Cómo hacer una consulta comlex MongoDB con Powershell
Necesito recuperar datos de mongoDB usando Powershell. Digamos que tengo la colección db.orders y necesito recuperar solo los pedidos creados durante la semana pasada y recuperar solo columnas específicas, por ejemplo, _id, status, createdAt fields.
Esquema de recogida de pedidos
{
"_id": ObjectId("56cf9bab78e9fd46ec557d69"),
"status" : "ordered",
...
"total": 343,
"createdAt": ISODate("2016-01-15T17:29:09.342Z")
}
Puedo consultarlo en mongo shell como este
db.orders.find({
"createdAt" : {
$lt: new Date(),
$gte: new Date(new Date().setDate(new Date().getDate()-7))
}
}, {_id: 1, status: 1, createdAt: 1 })
Pero necesito hacerlo en Powershell, aquí está mi script de Powershell con una consulta simple que extrae exactamente creado en la fecha ... no rango de fechas
$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)
En la API de MongoDB .NET Driver, no puedo hacer consultas complejas o al menos no sé cómo. Puedo consultar de acuerdo con una columna específica, pero no haciendo una compleja y no puedo limitar la salida para algunos campos.
Por favor avise si alguien sabe cómo hacerlo. Nota: no es un proyecto .Net, solo usa el controlador .net mongoDB, pero se ejecuta en Powershell.