2 つのコレクションのスキーマを次に示します。
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
は同じクエリで欲しい。どのようにできるのか?インターネットでいくつかの解決策を見つけましたが、populate を使用するか、aggregation を使用するかはまだわかりません$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 );
}
})