2015-02-05 3 views
0

Я работаю с следующим документомКак извлечь вложенные элементы массива в метеоре

{ 
    "_id" : 123344223, 
    "firstName" : "gopal", 
    "gopal" : [ 
    { 
    "uuid" : "123", 
    "name" : "sugun" 
    }, 
    { 
    "uuid" : "456", 
    "name" :"kiran" 
    } 
      ] 
} 

Я хочу, чтобы получить имя от первого документа массива и напечатать его в таблице ...

вот что я попробовал

Template.table.helpers({ 
    ProductManager: function() { 
    return ProductManager.find({_id:123344223},{gopal:{$elemMatch:{uuid:"123"}}}); 
    } 
})  

, где менеджер по продукту моя коллекция и определены в common.js

ProductManager = new Meteor.Collection("ProductManager"); 

Вот мой шаблон

<template name="table"> 
<table> 
<thead> 
<tr> 
<th>NAME</th> 
<th>UUID</th> 
</tr> 
</thead> 
<tbody> 
{{#each ProductManager}} 
<tr> 
<td>{{name}}</td> 
<td>{{uuid}}</td> 
</tr> 
{{/each}} 
</tbody> 
</table> 

, когда я попытался это

ProductManager.find({_id:123344223},{gopal:{$elemMatch:{uuid:"123"}}}); 

Иам смог получить это в Монго оболочки

{ 
"_id" : 123344223, 
"gopal" : [ 
{ 
"uuid" : "123", 
"name" : "sugun" 
} 
} 

, но не могу напечатать имя иuuid в таблице ....... plzz помогите мне решить эту проблему ... Заранее спасибо

ответ

1

Вы в основном просматриваете список результатов запроса, а не массив. Чтобы исправить это, запрос для конкретного документа:

Используйте ProductManager.findOne вместо ProductManager.find(), так как вы ищете конкретный документ.

Loop через все в gopals массиве вместо самого курсора:

{{#each ProductManager.gopal}} 
.... 
{{/each}} 

вместо зацикливания через {{#each ProductManager}}...

+0

спасибо Akshat –

+0

HEYY, у меня есть одно сомнение я могу использовать свою собственную БД в метеора а не по умолчанию. По умолчанию отображается «метеорит», и я хочу использовать «sugun» в качестве базы данных. –

+0

Спасибо, Акшат! Кончик findOne работал блестяще для меня. – Kamal

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