如何在mongoose上对基于其他模式的ref的字段执行聚合。
例如:低于id的架构
var StorySchema = new Schema({
_creator : { type: Schema.ObjectId, ref: 'Person' }
, title : String
, fans : [{ type: Schema.ObjectId, ref: 'Person' }]
});
如何与创作者和粉丝进行聚合
提前致谢
答案 0 :(得分:-2)
您可以使用populate
功能,文档:http://mongoosejs.com/docs/populate.html
populate
将帮助您查找基于ObjectIds和ref集合的数据:
Story
.findOne({title: 'your title'})
.populate(['_creator', 'fans'])
.exec(function (err, doc) {
console.log(doc);
})
输出:
{ _id: 52b9768a8a770b383d000003,
title: 'your title',
_creator: { name: 'user1', _id: 52b975e13e7f2dec31000001, __v: 0 },
fans:
[ { name: 'fan1', _id: 52b975e13e7f2dec31000001, __v: 0 },
{ name: 'fan2', _id: 52b975e13e7f2dec31000002, __v: 0 },
{ name: 'fan3', _id: 52b975e13e7f2dec31000003, __v: 0 }] }
您可以删除populate函数以查看结果上的不同