2014-06-30 111 views
0

我看着在网络上并没有找到我想要的东西。MongoDB的嵌套阵列

我想知道是否有可能里面插入另外一个像

数组比方说,我想这样做:

db.siteraiz.insert(  
    SiteRaiz:[ 
     [{Dados:'idSiteRaiz:#ChartSet', 
     [{Metas:'metaValor'}], 
     [{Robots:'link1:#linkN'}] 
     }] 
) 
+0

蒙戈是一个“文件”基于数据库...这意味着它基本上只是需要JSON对象作为输入数据...所以是的......你绝对可以嵌套数据与JSON对象。 – ewizard

+0

示例JSON对象与数组:'VAR对象= { “阵列”:yourarray, “数组2”:yourarray2}' – ewizard

+0

http://json.org/example - 这里是一个更好的例子。 – ewizard

回答

1

是的,它可以插入一个阵列到另一个,但你不能在没有密钥的对象中使用数组。此语法是无效的:

{ 
    Dados: 'idSiteRaiz:#ChartSet', 
    [ 
    {Metas:'metaValor'} 
    ], 
    [ 
    {Robots:'link1:#linkN'} 
    ] 
} 

只能使用带有键值对的对象:

{ 
    key1: 'value1', 
    key2: 'value2' 
} 

你可以有内部对象数组,但你仍然需要使用密钥数组:

{ 
    key1: 'value1', 
    key2: ['value2', 'value3'] 
} 

我完全不知道要如何组织你的数据,但这里有一些工作的例子:

db.siteraiz.insert({ 
    SiteRaiz:[ 
    { 
     Dados: 'idSiteRaiz:#ChartSet' 
    } 
    ] 
}) 
db.siteraiz.insert({ 
    SiteRaiz:[ 
    [ 
     {Metas:'metaValor'} 
    ], 
    [ 
     {Robots:'link1:#linkN'} 
    ] 
    ] 
}) 

确保您试图插入一个有效的JSON对象。您可以验证您的JSON对象,比如这里:http://jsonlint.com/

+0

我明白了,所以我必须用这种方式,我想过阵列,但是不知道如果我可以做我想做的,感谢的人的方式,我希望我能投票支持你的答案。 – Reno

+0

@ user3529913编辑我的答案,使之更加明确的问题是你的榜样是什么。 –

+0

所以,这将会是这样 db.siteraiz.insert( \t \t SiteRaiz: \t \t Dados: 'idSiteRaiz:#ChartSet',\t \t \t \t [{METAS: 'metaValor'}] ,\t \t \t \t [{机器人: 'LINK1:#linkN'} \t \t] \t] }) 我希望把元和机器人内部siterais,但你做了什么(最后一个)这就是我想要的,真的感谢的人。 – Reno