这是两个集合的架构
var activitySchema = new Schema({
activity_id: {type: String, index: {unique: true}, required: true},
begin_date : String,
...
})
var registrationSchema = new Schema({
activity_id: {type: String, index: {unique: true}, required: true},
registration_id: {type:String, trim: true, index: true ,required: true },
email : String,
...
})
我想activity.begin_date , registration.id , registration.email
在同一个查询中。我能怎么做?我在互联网上找到了一些解决方案,但仍然不知道是使用填充还是聚合$lookup
(这个似乎是新的)。
这是我尝试过的方法,但根本不起作用。
models.Registration.aggregate([
{
$lookup: {
from: "Activity",
localField: "activity_id",
foreignField: "activity_id",
as: "activity_docs"
}
},
{"$unwind" : "activity_docs"},
], function( err , result ){
if(result){
fullDoc = result;
}else{
next( err );
}
})