我试图弄清楚如何使用mongodb在loopback中设置一个非常简单的嵌套“treenode”模型。这个想法是只有一个模型(为此):treenode可以包含其他treenode。我想通过mongodb嵌套文档立即存储它们:
- TreeNode (document):
Name: "A",
Nodes: [
{
Name: "A-A",
Nodes: [
{
Name: "A-A-A",
Nodes: []
},
{
Name: "A-A-B",
Nodes: []
},
{
Name: "A-A-C",
Nodes: []
}
},
{
Name: "A-B",
Nodes: []
},
]
此外,任何级别的每个节点都与其他模型有关系。
将有许多顶级根节点(文档)。哪种关系类型以及我应该如何使用?
答案 0 :(得分:1)
不幸的是,关于这个主题的文档还不多。目前,请参阅http://docs.strongloop.com/display/LB/Embedded+models+and+relations
答案 1 :(得分:0)
您应该单独定义嵌套模型,然后将它们声明为瞬态模型。然后loopback应该将它们存储在其父模型中,如http://loopback.io/doc/en/lb2/Embedded-models-and-relations.html#transient-versus-persistent-for-the-embedded-model
所述定义瞬态数据源
服务器/ datasources.json 强>
{
...
"transient": {
"name": "transient",
"connector": "transient"
}
}
服务器/模型config.json 强>
{
...
"BaseNode": {
"dataSource": "db",
"public": true
},
"NestedNode": {
"dataSource": "transient",
"public": false
}
}
模型定义应该是这样的:
<强>公共/模型/ NestedNode.json 强>
{
"name": "NestedNode",
"base": "Model",
"properties": {
"name": {
"type": "string"
}
},
"relations": {
"nodes": {
"type": "referencesMany",
"model": "NestedNode",
"options": {
"validate": true,
"forceId": false
}
}
}
<强>公共/模型/ BaseNode.json 强>
{
"name": "BaseNode",
"base": "PersistedModel",
"properties": {
"name": {
"type": "string"
}
},
...
"relations": {
"nestedNode": {
"type": "embedsMany",
"model": "Link",
"scope": {
"include": "linked"
}
}
},
...
}
您也可能会遇到曲目参考问题。