2015-05-06 7 views
0

Есть следующий набор MongoDB:Возвращаемых значения поддокумента в Метеоре коллекции MongoDB

{ 
    "_id": "u3Yv2bm4cpsssLSHv", 
    "allowed": 1, 
    "country_name": "Canada", 
    "states": [ 
     { 
      "state_name": "Alberta" 
     }, 
     { 
      "state_name": "British Columbia" 
     }, 
     { 
      "state_name": "Manitoba" 
     }, 
     { 
      "state_name": "New Brunswick" 
     }, 
     { 
      "state_name": "Newfoundland and Labrador" 
     }, 
     { 
      "state_name": "Nova Scotia" 
     }, 
     { 
      "state_name": "Ontario" 
     }, 
     { 
      "state_name": "Prince Edward Island" 
     }, 
     { 
      "state_name": "Quebec" 
     }, 
     { 
      "state_name": "Saskatchewan" 
     }, 
     { 
      "state_name": "Northwest Territories" 
     }, 
     { 
      "state_name": "Nunavut" 
     }, 
     { 
      "state_name": "Yukon" 
     } 
    ] 
} 

Как я могу вернуть значения «состояний» в этой коллекции, так что я могу заселить выпадающий список? Я пытаюсь сделать что-то так (не возвращает ничего в «государство» поддокумент "):

venue_province: { 
    type: String, 
    label: "Province/State", 
    optional: true, 
    max: 200, 
    autoform: { 
     type: 'chained', 
     // Gets a list of province/state names from the locations collection 
     options: function() { 
      return _.map(bt_col_locations.find().fetch(), function(item) { 
       return {value: item.states.state_name, label: item.states.state_name, parent: item.country_name} 
      }) 
     } 
    } 

Обратите внимание, что я использую Aldeed: Autoforms и JQuery-серию, в основном, у меня есть родительское выпадающее меню для пользователя чтобы выбрать страну, и каскады выпадающего списка ребенка с соответствующими штатами/провинциями.

+0

Непонятно, что вы просите. Что не работает? Кроме того, 'item.states' является массивом, поэтому' item.states.state_name' явно не может работать. –

ответ

0

Кажется, что вы ищете, возможно, в структуре агрегации Mongo. (http://docs.mongodb.org/manual/core/aggregation-introduction/) Я не тестировал ваше конкретное использование здесь, но с что вы должны иметь возможность использовать $ unwind, чтобы получить массив состояний в более работоспособное состояние, а затем просто запросить его. Оттуда вы также можете сделать несколько других полезных операций, например сортировку, чтобы сделать список выглядит мило.

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