У меня есть документ «владелец», в котором «n» количество лагерей и лагерей имеет «инструкторов», а у инструкторов есть «классы». Раньше я пытался выполнить это с помощью вложенных массивов (см. Ссылку на мой пост ниже), однако я узнал, что позиционный оператор «$» не так глубоко вложен. MongoDB: Adding an array into an existing arrayMongoDb: Как вставить дополнительный объект в коллекцию объектов?
Однако я узнал, что обходным решением будет использование коллекций объектов вместо массивов. Я предполагаю, что я должен использовать «обновление» с «$ set», чтобы добавить дополнительные «лагеря», однако каждый раз, когда я делаю все, что он делает, это перезаписывать (обновлять) предыдущий лагерь, который был вставлен.
Ниже иерархическая структура Я пытаюсь выполнить:
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'
}
}
}
}
Я также пытался следующее:
db.owners.update({ownerEmail:'[email protected]'}, {$set: { camps:{ {name:'cubs-killeen'} } }})
, но это бросает неожиданный идентификатор {ошибку.
Любая помощь с некоторыми примерами команд манго для достижения вышеуказанной структуры была бы наиболее оценена.
V/R
Крис
Это недопустимые документы. Вы не можете иметь неназванные вложенные объекты, как вы пытаетесь сделать с «лагерями» и «инструкторами». – JohnnyHK
Вы имели в виду 'camps: {name: 'cubs-killeen'}' вместо 'camps: {{name: 'cubs-killeen'}}'? –
@ Рельфор, да, вот что я имел в виду! Спасибо за разъяснения. Теперь, как достичь этой структуры документа? – cpeele00