2013-08-13 3 views
0

Класс портфеля имеет поле массива с именами папок. когда я создать его с помощью:Array Creation array in mongodb

db.portfolio.insert(
    folders: [ 
    {"name"=>"Folder 1", 
    "stocks"=>[ 
     {"name"=>"stock name", 
     "id"=>"stock id1", 
     "qty"=>2}, 
     {"name"=>"stock name", 
     "id"=>"stock id2", 
     "qty"=>1} 
    ]}, 
    {"name"=>"Folder 2", 
    "stocks"=>[ 
     {"name"=>"stock name", 
     "id"=>"stock id3", 
     "qty"=>2}, 
     {"name"=>"stock name", 
     "id"=>"stock id4", 
     "qty"=>1} 
    ]} 
]) 

я получил ошибку, что "SyntaxError: отсутствует) после списка аргументов (оболочки): 1". Какие-нибудь догадки?

+0

вы должны обернуть 'папки: [...]' Вы не можете сделать 'вставить (х: [])', то он должен быть 'вставить ({х : []}) ' – evilive

+0

Если я это сделаю, я получил ошибку Синтаксическая ошибка отсутствует id 1 –

+0

Используйте': 'вместо' => 'и переносите' папки в '{}'. –

ответ

1

Это будет работать:

db.portfolio.insert({ 
    folders: [ 
    {"name":"Folder 1", 
    "stocks":[ 
     {"name":"stock name", 
     "id":"stock id1", 
     "qty":2}, 
     {"name":"stock name", 
     "id":"stock id2", 
     "qty":1} 
    ]}, 
    {"name":"Folder 2", 
    "stocks":[ 
     {"name":"stock name", 
     "id":"stock id3", 
     "qty":2}, 
     {"name":"stock name", 
     "id":"stock id4", 
     "qty":1} 
    ]} 
]})