Mongoose中Schema中的相同模式

时间:2014-10-02 18:54:37

标签: javascript node.js mongodb mongoose

var dirSchema = new mongoose.Schema([{type:String, 
                name:String, path:String, children:[dirSchema]}]);

我想在mongodb中使用nodejs存储这种类型的模式?它就像一个文件系统结构。如果我有一个路径说/ foo / bar / hello / 123,我如何查询集合。

1 个答案:

答案 0 :(得分:0)

我不记得当时是如何解决的(2014年),但是可以通过使用Graph查找操作来解决。 depth字段可用于标识文件夹的深度。

db.dirs.aggregate([ 
    { $match: {
      dirId: "foo"
    } }, 
    {$graphLookup:{
    from:"product", 
    startWith:"$_id", 
    connectFromField:"_id", 
    connectToField:"parentId",
    "depthField": "depth" 
    as:"children"
  }}])