介绍
我有点像个蒙哥人,只是想弄清楚这里的窍门。
我正在尝试创建一个层次化的数据结构,我可以动态地向其中添加节点/叶。模式是固定的,但是任何给定树上的节点应该可以随时更改。我要寻找的主要内容是如何在嵌套较深的节点上添加/删除节点,而不必重写整个树。
“生成”
. 稀疏文档如下所示(为了简洁起见,删除了\u id):
{ name: "build from changeset #5678",
assemblies: [
{ name: "someAssembly1.dll",
warnings: [
{ level: 0,
message: "something doesn't conform to our standard"
}
]
}
]
}
为此,我做了以下几点:;
db.builds.insert({name: "build from changeset #5678})
db.builds.update({name: "build from changeset #5678"},
{$addToSet: {assemblies: {name: "someAssembly1.dll"}}})
现在,
如何添加警告?
我在想可能是这样的:
db.builds.update({
name: "build from changeset #5678",
"assemblies.name": "someAssembly1.dll"
},{
$addToSet: {
assemblies.warnings: {
level: 0,
name: "something doesn't conform to our standard"
}
}
})
“缺少:在属性id(shell):0之后”
"组件.警告"
,但上面说
有谁比我更了解蒙哥,能帮我吗?
我试着在蒙戈岛上做深巢树是不是错了?我最好使用多个集合和一些关系型的?
在我的印象中,不做关系(以及ACID)是Mongo的主要好处之一,但话说回来,也许这只是我的noob再次出现。