0
我有一個項目模式和集合以及一個列表模式和集合。在貓鼬中使用動態字段
我目前創建項目與創建列表分開......但每個項目都引用一個列表objectId。
var ListSchema = new Schema({
name : { type: String, required: true, trim: true }
, user : { type: Schema.ObjectId, ref: 'User', index: true }
, description : { type: String, trim: true }
});
var ItemSchema = new Schema({
name : { type: String, required: true, trim: true }
, description: { type: String, trim: true }
, list : { type: Schema.ObjectId, ref: 'List', index: true }
});
我想知道是否有可能得到一個列表,並加載項該列表ontop的該實例:
所以,我可以這樣做:
list.items
得到中的所有項目風景。
//routes/list.js
List.find({ user: req.params.userid }, function(err, lists){
//i want to populate list.items here
res.render('/lists', { lists: lists });
});
//views/list.ejs
<% lists.forEach(function(list){ %>
List has <%= list.items.length %> items in it
<% }) %>
這會工作,我想知道是否有更多的mongo-ish方式來做到這一點。或者創建一個List.methods.items函數爲我執行此操作。 – chovy
作者mongo-ish,你的意思是在List集合中的同一個查詢中嗎?既然你想從兩個獨立的集合中獲取數據,你將需要執行兩個查詢。 – shelman
這不起作用,因爲我需要填充list.items後調用res.render()。 Item.find()在一個循環中,這是我必須要做的。 – chovy