2016-08-08 138 views
2

我想创建1个对象嵌套文档状物体父:创造出嵌套的孩子猫鼬

孩子:

chil1:

{ name: 'Mimi',                                                        
     parent: 537258f63eb92b3201b65e56,                                                   
     _id: 537258f63eb92b3201b65e57,                                                   
     __v: 0 }, 

chil2

{ name: 'Kiki',                                                        
    parent: 537258f63eb92b3201b65e56,                                                   
    _id: 537258f63eb92b3201b65e58,                                                   
    __v: 0 } 

家长: (我想要的)

[ { name: 'John',                                                        
    _id: 537258f63eb92b3201b65e56,                                                   
    __v: 0,                                                         
    children: [ { name: 'Mimi',                                                        
    parent: 537258f63eb92b3201b65e56,                                                   
    _id: 537258f63eb92b3201b65e57,                                                   
    __v: 0 },                                                         
    Children:[ { name: 'Mimi',                                                        
    parent: 537258f63eb92b3201b65e56,                                                   
    _id: 537258f63eb92b3201b65e57,                                                   
    __v: 0 },                                                         
    { name: 'Kiki',                                                        
    parent: 537258f63eb92b3201b65e56,                                                   
    _id: 537258f63eb92b3201b65e58,                                                   
    __v: 0 } ] 

是否可以使用nodejs(express)在mongooese上创建数据? 它是类似的这个问题mongoose: How to insert a single subdocument - not an array 但在这种情况下,孩子只存储小孩的id,不是所有的对象? 这里是我的模型文件:

const schema:mongoose.Schema = new mongoose.Schema({ 
    owner: { 
     type: mongoose.Schema.Types.ObjectId, 
     ref: 'user' 
    }, 
    name: String, 
    parentCategory: { 
     type: mongoose.Schema.Types.ObjectId, 
     ref: 'parent', 
    }, 
    childCategories: [{ 
     type: mongoose.Schema.Types.ObjectId, 
     ref: 'child', 
    }], 
}); 

通常结果:

{ name: 'John',                                                        
      _id: 537258f63eb92b3201b65e56,                                                   
      __v: 0,                                                         
      children: [Chil1_id, Chil2_id] 
} 
+0

任何建议将欣赏! –

回答

1

你尝试populate

下面是一个简单的例子:

Parent.find().populate("children").exec(...) 

只要你注明儿童的裁判一个模型,猫鼬是足够聪明与家长参加孩子。