Мне нужно получить данные из mongoDB с помощью Powershell. Предположим, у меня есть коллекция db.orders и вам нужно получить только заказы, созданные на прошлой неделе, и получить только определенные столбцы, например, поля _id, status, createdAt.Как сделать comlex-запрос MongoDB с Powershell
Приказов коллекции схемы
{
"_id": ObjectId("56cf9bab78e9fd46ec557d69"),
"status" : "ordered",
...
"total": 343,
"createdAt": ISODate("2016-01-15T17:29:09.342Z")
}
Я запрашиваю его в Монго оболочка, как этот
db.orders.find({
"createdAt" : {
$lt: new Date(),
$gte: new Date(new Date().setDate(new Date().getDate()-7))
}
}, {_id: 1, status: 1, createdAt: 1 })
Но мне нужно сделать это в Powershell, вот мой Powershell скрипт с простым запросом, который экстрагировать точно createdAt дата .. нет диапазон дат
$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)
В MongoDB .NET Драйвер api, I не могут делать сложный запрос или, по крайней мере, не знают, как это сделать. Я могу запросить в соответствии с одним конкретным столбцом, но не сделать сложным и не может ограничить вывод для некоторых полей.
Пожалуйста, сообщите, если кто знает, как это сделать. Примечание: это не проект .Net, он просто использует драйвер mongoDB .net, но выполняется в Powershell.
какую версию драйвера вы используете? – profesor79
В настоящее время используется 1.7.0.4714 – Markus
ok, у меня были проблемы с запуском этого на 2.2.3 :-) - завтра будет выглядеть, как это хорошая штука, чтобы взломать – profesor79