Wie mache ich eine komplexe Abfrage von MongoDB mit Powershell

Ich muss mit Powershell Daten aus MongoDB abrufen. Angenommen, ich habe die Sammlung db.orders und muss nur Aufträge abrufen, die in der letzten Woche erstellt wurden, und nur bestimmte Spalten abrufen, z. B. _id, status, createdAt-Felder.

Auftragserfassungsschema

{
 "_id": ObjectId("56cf9bab78e9fd46ec557d69"),
 "status" : "ordered",
  ...
 "total": 343,
 "createdAt": ISODate("2016-01-15T17:29:09.342Z")
}

Ich kann es in Mongo Shell wie folgt abfragen

db.orders.find({ 
  "createdAt" : { 
    $lt: new Date(), 
    $gte: new Date(new Date().setDate(new Date().getDate()-7))
  }   
}, {_id: 1, status: 1, createdAt: 1 })

Aber ich muss es in Powershell machen, hier ist mein Powershell-Skript mit einer einfachen Abfrage, die genau das Erstellungsdatum extrahiert .. nicht den Datumsbereich

$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)

In der MongoDB .NET-Treiber-API kann ich keine komplexen Abfragen durchführen oder weiß zumindest nicht, wie. Ich kann nach einer bestimmten Spalte abfragen, aber keine komplexe Spalte erstellen und die Ausgabe für einige Felder nicht einschränken.

Bitte raten, wenn jemand weiß, wie es geht. Hinweis: Es handelt sich nicht um ein .Net-Projekt, es wird nur der mongoDB .net-Treiber verwendet, sondern in Powershell ausgeführt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage