Я пытаюсь "объединить" две модели (расписание и пользователя) в агрегат расписания, используя $ lookup , но мой ответ - "неизвестный аргумент для $ lookup: foreignKey".Я использую Node v8.11.3 и MongoDB 4.0, которые я использую. Я искал несколько дней и не знаю, как решить эту проблему.
маршруты / отчет.js
Schedule.aggregate([{
$match: {
'store': req.body.store,
'scheduleStart': {
$lte: start,
$gte: req.body.period
},
'status': {
$lte: 3,
$gte: 1
}
}
},
{
$group: {
"_id": {
"name": "$customer.name",
"cpf": "$customer.cpf",
"id": "$customer.id",
"phone": "$customer.phone"
},
"totalValue": {
$sum: "$value"
},
"totalServices": {
$sum: 1
},
}
},
{
$lookup: {
from: 'user',
localField: 'customer.id',
foreignKey: '_id',
as: 'user_detail'
}
}
])
models / schedule.js
const ScheduleSchema = new Schema({
store: {
type: String,
required: true
},
customer: {
id: {
type: String,
required: true
},
name: {
type: String,
required: true
},
avatar: String,
phone: {
type: String,
required: true
},
cpf: {
type: String,
required: true
},
}, {
timestamps: {
createdAt: 'created',
updatedAt: 'updated'
}
});
модели/user.js
const UserSchema = new Schema({
name: {
type: String,
required: true
},
storeKey: {
type: String,
required: true
},
avatar: String,
birthday: String,
phone: {
type: String,
required: true
},
cpf: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
passwordHash: String,
salt: String
},
}, {
timestamps: true
});