小编Eth*_*inn的帖子

Mongoose.js:如何通过人口实现树结构

我正在使用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)

javascript mongoose mongodb

7
推荐指数
1
解决办法
4764
查看次数

刀具食谱安装后的流浪盒破裂

我是一个Vagrant n00b,knife因为我正在使用chef-solo设置一个非常简单的CentOS LAMP盒子,因此在获得Vagrant和Chef的命令时会遇到一些问题.

以下是该问题的快速概述:

  1. 我使用vagrantbox.es上的CentOS 6.3 w/Chef基本框创建了一个基本的Vagrantfile.你可以在这个要点中看到基础知识.
  2. 我已经通过knife cookbook site install nameofcookbook使用将它们放入的配置下载了所有的食谱./chef/cookbooks.
  3. 我已成功跑到vagrant up你可以看到这个要点的基础知识.
  4. 我已经测试了apache,php等等.一切都很好.
  5. 现在来了诀窍:在VM运行时,我运行刀来添加另一个包(在这种情况下是i3).
  6. 从现在开始,Vagrant无法在VM中执行各种任务:
  7. 当我跑步时,vagrant provision我得到这样的错误

    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.
    
    Run Code Online (Sandbox Code Playgroud)
  8. 当我运行时,vagrant halt我得到一个错误,ssh命令以非零错误代码退出.

  9. vagrant ssh然而,我能够运行,并确认(a)厨师独奏确实存在于框中,(b)我可以通过框中的命令行关闭.
  10. 当我运行时,vagrant up我收到这样的错误: …

centos chef-infra vagrant knife

6
推荐指数
1
解决办法
1679
查看次数

标签 统计

centos ×1

chef-infra ×1

javascript ×1

knife ×1

mongodb ×1

mongoose ×1

vagrant ×1