Я хочу найти покупку, где ad.author
- это то, что пользователь вошел в систему! Но в модели «покупка» у меня есть ссылка «модель объявления», и когда мне нужно ее найти, мне нужно заполнить все кошельки, так что я думаю. Проблема в том, что когда я использую mongoose.paginate, результаты не "хорошие", потому что когда ad.author
отличается, у меня результат с ad:null
....
{
"_id": "5cc6e3f30bca881bd1ade9af",
"ad": null,
"content": "Eu quero comprar",
"interested": "5cc6e3a10bca881bd1ade9ae",
"createdAt": "2019-04-29T11:45:55.061Z",
"__v": 0
},
{
"_id": "5cc6e4aa0bca881bd1ade9b1",
"ad": {
"_id": "5cc6e44f0bca881bd1ade9b0",
"price": 300,
"author": "5cc6e3a10bca881bd1ade9ae"
},
"content": "Eu quero comprar o seu curso, cara",
"interested": "5cc4faacdd90ce534e5f184a",
"createdAt": "2019-04-29T11:48:58.545Z",
"__v": 0
},
async index (req, res) {
let results = []
await Purchase.find()
.populate('ad')
.then(response =>
response.map(el => {
if (el.ad.author == req.userId) results.push(el)
})
)
return res.json(results)
}
async index (req, res) {
const purchase = await Purchase.paginate(
{},
{
page: parseInt(req.query.page) || 1,
limit: 20,
populate: {
path: 'ad',
match: { ad: { author: req.userId } },
select: ['author', 'email', 'price']
},
sort: '-createAt'
}
)
return res.json(purchase)
}
То, что я хотел, это:
{
"_id": "5cc6e4aa0bca881bd1ade9b1",
"ad": {
"_id": "5cc6e44f0bca881bd1ade9b0",
"price": 300,
"author": "5cc6e3a10bca881bd1ade9ae"
},
"content": "Eu quero comprar o seu curso, cara",
"interested": "5cc4faacdd90ce534e5f184a",
"createdAt": "2019-04-29T11:48:58.545Z",
"__v": 0
},