2016-04-03 2 views
0

Когда я попробую Cars.find({car1: 1}).fetch() или Cars.find({'car1': {model1: 1}}) Я получаю null. Как я могу получить все модели из первого поля «car1»?Как получить поле из коллекции mongodb

Cars.insert({ 
    car1: { 
     model1: { 
     year: [2012, 2013, 2014] 
     }, 
     model2: { 
     year: [2012, 2013, 2014] 
     } 
    }, 
    car2: { 
     model1: { 
     year: [2012, 2013, 2014] 
     }, 
     model2: { 
     year: [2012, 2013, 2014] 
     } 
    } 
    }); 

ответ

0

Две проблемы здесь. Во-первых, вы проводите тест эквивалентности, когда вы должны выполнять тест $ exist. Другими словами, ваш вызов в настоящее время терпит неудачу, потому что вы спрашиваете, является ли car1 == 1, а не есть ли в данный момент поле car1.

Что-то, как это будет, вероятно, работать:

Var автомобили = Cars.find ({car1: {$ существует: истинно}}) выборки();. cars [0]

Во-вторых, я считаю, что ваш вызов вставки неверен для одновременного добавления двух документов. На самом деле вы должны добавлять только один автомобиль за каждый звонок. Попробуйте переписать его как:

Cars.insert({ 
    model1: { 
     year: [2012, 2013, 2014] 
    }, 
    model2: { 
     year: [2012, 2013, 2014   
    } 
    }); 

    Cars.insert({ 
    model1: { 
     year: [2012, 2013, 2014] 
    }, 
    model2: { 
     year: [2012, 2013, 2014   
    } 
    }); 
+0

_ { "_id": "asujxopTrgDNugiFH", "название" : "car1", "модели": [ { "имя": "models1", " год ": [2012, 2013, 2014]}, {" name ":" models2 "," year ": [2012, 2013, 2014]}, {" name ":" models3 "," year ": [2012, 2013, 2014]}]} _ ** Как получить ** _models1_? Когда я пытаюсь 'cars.find (имя:« car1 », модели: {name: 'models1});' Я получаю null. Спасибо. – pmnazar

Смежные вопросы