2015-01-03 2 views
2

Для следующего Json файла, у меня есть mongodb запрос, чтобы выбрать "Car" часть только документа:MongoDB Найти() запрос от Powershell

db.collection.find({_item:"Home"}, {"Car":1, "_id":0}) 

Как написать этот запрос в Powershell?

{ 
    "_id" : 1, 
    "_item": "Home", 
    "Car": [ 
    {"name": "BMW", "model": "series 3"}, 
    {"name": "Audi", "model": "A4"} 
    ], 
    "Fruit": [ 
    {"name": "Banana", "color": "Yellow"}, 
    {"name": "Apple", "color": "Red"} 
    ] 
} 

ответ

3
$databaseName = "database" 
$collectionName = "collection" 
$client = New-Object -TypeName MongoDB.Driver.MongoClient -ArgumentList "mongodb://localhost:27017" 
$server = $client.GetServer() 
$database = $server.GetDatabase($databaseName) 
$collection = $database.GetCollection($collectionName) 

$query = MongoDB.Driver.Builders.Query.EQ("_item","HOME") 
$results = $collection.Find($query).SetFields(Fields.Exclude("_id").Include("Car")) 
+0

Отлично. Я получаю сообщение об ошибке «Отсутствует») в функции SetFields. Вы получили сообщение об ошибке? – Taewan

+0

Добавить MongoDB.Driver.Builders. перед Fileds и посмотреть, что произойдет – Disposer

+0

Тот же результат. Этот драйвер для PowerShell 3.0+? Я использую 2.0 – Taewan

-1

Попробуйте это:

$results = $collection.Find($query).SetFields([MongoDB.Driver.Builders.fields]::Exclude("_id").include("Car")) 
Смежные вопросы