2014-09-28 7 views
1

Это должно быть довольно простым.Meteor: как вернуть данные из полей в конкретном объекте?

myobject имеет различные свойства, _id, name, createdBy, date и т.д.

В моем находит запрос я хочу, чтобы возвращать только отдельные поля внутри MyObject. Так, например, что мне нужно сделать, чтобы изменить запрос поиска ниже, чтобы вернуть только name?

myCollection.find({createdBy: someId}, {fields: {myObject: 1}}).fetch(); 

В настоящее время это будет возвращать все в myObject, которые он должен сделать, я просто хочу одно поле в myObject вернулся.

+0

Я неясными, если вы ищете массив имен или массив объектов только 'MyObject. name' поле комплект. –

ответ

2

Вот способ сделать это в запросе:

myCollection.find ({CreatedBy: someId}, {полей: { 'myObject.name': 1}}). Выборки() ;

Обратите внимание на кавычки вокруг

«myObject.name»

1

Давайте предположим, что мы говорим о должности, а должность документ выглядит следующим образом:

{ 
    _id: 'abc123', 
    title: 'All about meteor', 
    author: { 
    firstName: 'David', 
    lastName: 'Weldon' 
    } 
} 

Вы можете извлечь все фамилии из всех авторов с этим:

var lastNames = Posts.find().map(function(post) { 
    return post.author.lastName; 
}); 

Измените селектор и параметры, необходимые для вашей коллекции. Использование fields в этом случае может быть небольшой оптимизацией, если вы используете это на сервере и извлекаете данные непосредственно из БД.

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