Ho un documento "proprietario" che può avere "n" numero di campi e campi hanno "istruttori" e gli istruttori hanno "classi". In precedenza ho provato a realizzare questo con array annidati (vedi link al mio post qui sotto), tuttavia ho appreso che l'operatore posizionale "$" non annida così profondamente. MongoDB: Adding an array into an existing arrayMongoDb: Come inserire oggetti aggiuntivi nella raccolta di oggetti?
Tuttavia, ho imparato che la soluzione alternativa sarebbe utilizzare le raccolte di oggetti anziché gli array. Suppongo di dover utilizzare "aggiornamento" con "$ set" per aggiungere ulteriori "campi", tuttavia ogni volta che faccio tutto ciò che faccio è sovrascrivere (aggiornare) il campo precedente che è stato inserito.
Di seguito si riporta la struttura gerarchica che sto cercando di realizzare:
owner = {
firstName: 'john',
lastName: 'smith',
ownerEmail: '[email protected]',
camps : {
{
name: 'cubs-killeen',
location: 'killeen'
},
{
name: 'cubs-temple',
location: 'temple'
},
instructors : {
{
firstName: 'joe',
lastName : 'black'
},
{
firstName: 'will',
lastName : 'smith'
}
}
}
}
Ho anche provato la seguente:
db.owners.update({ownerEmail:'[email protected]'}, {$set: { camps:{ {name:'cubs-killeen'} } }})
ma questo genera un identificatore inaspettato {error.
Qualsiasi aiuto con alcuni comandi di mongo di esempio per ottenere la struttura sopra sarebbe più apprezzato.
V/R
Chris
Questi non sono documenti validi. Non puoi avere oggetti nidificati senza nome come stai cercando di fare con 'camps' e' instructors'. – JohnnyHK
intendevi "campi: {nome: 'cubs-killeen'}' invece di 'campi: {{nome: 'cubs-killeen'}}'? –
@Ristor, sì, è quello che intendevo! grazie per il chiarimento. Ora, come raggiungere quella struttura del documento? – cpeele00