我正在使用Mongoose 3.x来实现一个树结构(类似于Mongo文档中的这个结构),但是我不确定封装所有逻辑的最佳方法是通过其兄弟姐妹和祖先来加载特定节点,特别是如何最好地使用人口功能,其中ref与参考者在同一个集合中.
对于某些上下文,我正在使用的树是不编辑节点但可以随时向任何节点添加新子节点的树.到目前为止,我已经通过一组在初始查找后加载对象的模型方法正常工作,但似乎应该有一种更好的方法来轻松加载单个分支,其中包含我需要的所有父级和兄弟级数据控制器中的命令,并在模型上的一些方便的查找方法中封装所有相关的人口.
我试图使用的基本Schema可能是这样的(也可以在这里获得:https://gist.github.com/3889616):
// Sub-document to store parent ref along with it's value (a form of caching)
var Parent = new Schema({
id: ObjectId
, text: String
});
// Main tree-node element schema
var Branch = new Schema({
text: {
type: String
, required: true }
, date: {type: Date, default: Date.now }
, trail: [Parent]
, parentBranchId: ObjectId
, parentBranch: { type: Schema.Types.ObjectId, ref: 'Branch' }
, _children: [{type: Schema.Types.ObjectId, ref: 'Branch'}]
// These …Run Code Online (Sandbox Code Playgroud) 我是一个Vagrant n00b,knife因为我正在使用chef-solo设置一个非常简单的CentOS LAMP盒子,因此在获得Vagrant和Chef的命令时会遇到一些问题.
以下是该问题的快速概述:
knife cookbook site install nameofcookbook使用将它们放入的配置下载了所有的食谱./chef/cookbooks.vagrant up你可以看到这个要点的基础知识.当我跑步时,vagrant provision我得到这样的错误
Run Code Online (Sandbox Code Playgroud)The chef binary (either `chef-solo` or `chef-client`) was not found on the VM and is required for chef provisioning. Please verify that chef is installed and that the binary is available on the PATH.
当我运行时,vagrant halt我得到一个错误,ssh命令以非零错误代码退出.
vagrant ssh然而,我能够运行,并确认(a)厨师独奏确实存在于框中,(b)我可以通过框中的命令行关闭.vagrant up我收到这样的错误: …