我有一个文件“所有者”,可以有“n”个营地,营地有“导师”,导师有“班级”。之前我尝试用嵌套数组完成此操作(请参阅下面的链接),但是我了解到位置运算符“$”不能嵌套那么深。 MongoDB: Adding an array into an existing arrayMongoDb:如何将其他对象插入对象集合?
但是,我了解到解决方法是使用对象集合而不是数组。我假设我必须使用“$ set”的“update”来添加额外的“阵营”,但每次我做的所有事情都是覆盖(更新)前一个插入的阵营。
下面是我想达到的层次结构:
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'} } }})
但这会引发意想不到的标志{错误。
任何帮助一些示例mongo命令来实现上述结构将不胜感激。
V/R
克里斯
这些都不是有效的文件。你不能有像你试图做'营地'和'导师'一样的未命名的嵌套对象。 – JohnnyHK
你是不是指'阵营:{名称:'cubs-killeen'}'而不是'阵营:{{name:'cubs-killeen'}}'? –
@Relfor,是的,这就是我的意思!谢谢澄清。现在,如何实现该文档结构? – cpeele00