Ich habe ein Dokument "Besitzer", die "n" Anzahl von Lagern haben kann und Lager haben "Ausbilder" und Ausbilder haben "Klassen". Früher habe ich versucht, dies mit geschachtelten Arrays zu erreichen (siehe Link zu meinem Post unten), aber ich habe gelernt, dass der positionelle Operator "$" nicht so tief nistet. MongoDB: Adding an array into an existing arrayMongoDb: Wie fügt man ein zusätzliches Objekt in die Objektsammlung ein?
Allerdings habe ich gelernt, dass die Problemumgehung wäre, Objektkollektionen anstelle von Arrays zu verwenden. Ich gehe davon aus, dass ich "update" mit "$ set" verwenden muss, um zusätzliche "camps" hinzuzufügen, aber jedes Mal, wenn ich das mache, wird das vorher eingefügte Camp überschrieben (aktualisiert).
Unten ist die hierarchische Struktur I zu erreichen versuche:
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'
}
}
}
}
Ich habe auch die folgende versucht:
db.owners.update({ownerEmail:'[email protected]'}, {$set: { camps:{ {name:'cubs-killeen'} } }})
aber dies wirft einen unerwarteten Bezeichner {Fehler.
Jede Hilfe mit einigen Beispiel-Mongo-Befehlen, um die obige Struktur zu erreichen, würde am meisten geschätzt werden.
V/R
Chris
Das sind keine gültigen Dokumente. Sie können keine namenlosen verschachtelten Objekte haben, wie Sie es mit Camps und Instructors versuchen. – JohnnyHK
meinst du 'camps: {name:' cubs-killeen '} 'anstelle von' camps: {{name:' cubs-killeen '}} '? –
@Relfor, ja das ist was ich meinte! Danke fürs klarstellen. Wie kann man diese Dokumentenstruktur erreichen? – cpeele00