use $ заполнить в агрегации мангуст [дубликаты]
На этот вопрос уже есть ответ:
MongoDB $ lookup Objectid получить пустой массив? 1 ответ Как мне выполнить эквивалент SQL Join в MongoDB? 19 ответов Я не знаю, когда использоватьref
в схеме, но недавно я начал использовать его, поскольку он выглядит чистым. Ниже приведен рабочий пример.
const UserSchema = new Schema({
credit: {
type: Schema.Types.ObjectId,
ref: 'Credit'
}
})
Я просто использую заполнить как
const response = await User.find({}).populate('Credit').exec()
Но в другом случае я должен использовать$lookup
как и в других контроллерах предыдущий разработчик использовал агрегацию.
const response = await Job.aggregate([
{
$match: queryObj
},
{
$lookup: lookupObj
},
{
$lookup: {
from: 'credit',
localField: ??
foreignField: ??
as: 'credit'
}
}
])
как вы видите код выше, я должен проскользнуть в этот дополнительный $ lookup
{
$lookup: {
from: 'credits',
localField: ??, //no idea what this should be.
foreignField: '_id'
as: 'credits'
}
}
Но это все еще не работает. Я получил кредитное свойство в виде пустого массива.