2014-03-20 6 views
0

Я пытаюсь заполнить три коллекции, но я думаю, что что-то не хватает.mongoose совокупность двухуровневого массива

var BlogsSchema = new Schema({ 
name: String, 
url: {type:String, unique: true}, 
_rows: [{type: Schema.Types.ObjectId, ref:'Rows'}], 
description: String, 
tags:[{type:String}] 
}); 
var RowsSchema = new Schema({ 
name: String, 
text: String, 
_asset: { 
    type: Schema.Types.ObjectId, 
    ref: 'Assets' 
} 
}); 



Blogs.find() 
    .populate('_rows') 
    .populate('_rows._asset') 
    .exec(function (err, blogs) { 
     if (!err) { 
      var _id = []; 
      return res.json(blogs); 
     } else { 
      return res.send(err); 
     } 
    }); 

Я не мог заполнить _asset. Это отвечает:

{ 
    "__v": 0, 
    "_id": "532acfa26f192fdc1e000002", 
    "description": "deneme deneme", 
    "name": "Deneme", 
    "url": "deneme", 
    "tags": [ 
    "deneme1", 
    "deneme2" 
    ], 
    "_rows": [ 
    { 
     "name": "asdfadf", 
     "text": "asdfadsf", 
     "_id": "532acfa96f192fdc1e000003", 
     "__v": 0 
    }, 
    { 
     "name": "asdfsfdb", 
     "text": "bodfbsdfbsdbsdb", 
     "_asset": "5327ca7006777b6c0e000003", // this should populated too. Not _id 
     "_id": "532acfe36f192fdc1e000004", 
     "__v": 0 
    } 
    ] 
} 

ответ

1

Это не сработает, так как мангуста не дает опции для вложенного населения в текущей версии.

Вам нужно перебирать _rows массива и вручную заполнить _rows._asset

Смежные вопросы