使用mongoose进行聚合和填充

时间:2017-11-15 13:36:49

标签: node.js mongodb mongoose mongoose-schema mongoose-populate

我有两个这样的集合:

var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var GradeSchema = new Schema({
gID: { type: Number, ref: 'User'},
grade: Number,
created_at: Date,
updated_at: Date,
type: Number
});

var Grade = mongoose.model('Grade', GradeSchema);
module.exports=Grade;

var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var UserSchema = new Schema({
name: String,
lastName:String,
uID: { type: Number,ref:'Grade' },
phone: String 
});

var User = mongoose.model('User', UserSchema);
module.exports=User;

我怎样才能首先聚合然后填充以获得两个收集信息?

我在mongodb中使用$ lookup使用此命令并返回我建议的文档:

db.grades.aggregate([{$lookup 
{from:"users",localField:"gID",foreignField:"uID",as: "result"}},{$match:
{"type":0}},{"$sort":{"grade":-1}}])

但是当我在mongoose中使用它时,“result”是[]并且与用户集合的连接失败:

Grade.aggregate([{"$lookup":
{"from":"User","localField":"gID","foreignField":"uID","as": "result"}},
{"$match":{"type":3}},{"$sort":{"grade":-1}}]).exec(function(err, data)
{console.log(data);});

0 个答案:

没有答案