Запрос select не работает в .populate() Waterline-postgresql.
Model.find(query).populate(assoc.alias,{select:['field1','field2']});
Это не работает в адаптере waterline-postgresql.
Это не поддерживается или я ошибаюсь?
Запрос select не работает в .populate() Waterline-postgresql.
Model.find(query).populate(assoc.alias,{select:['field1','field2']});
Это не работает в адаптере waterline-postgresql.
Это не поддерживается или я ошибаюсь?
select не поддерживается в .populate(). Вы можете увидеть эту ошибку github. При заполнении select в настоящее время не работает.
Это запрос функции, и это открытая проблема. надеюсь, что в следующем релизе команда Waterline представит эту функцию.
Поскольку официального способа сделать это нет, я внес некоторые изменения, чтобы иметь это. Возможно, это не лучший способ, но он работает.
User.find({ belongs_to: user.id })
.populate('person_id')
.exec(function findCB (err, usersFound)
{
console.log(usersFound[0].toJSON())
if (err)
{
return res.json(401, {error: err});
}
if (usersFound.length == 0)
{
return res.json(200, {message: 'No user asigned'});
}
else
{
// An array to store all the final user objects
var asignedArray = [];
for (index in usersFound)
{
var myObj = {},
key,
value;
// Object in format {key: value}
myObj['id'] = usersFound[index].id;
myObj['fullname'] = usersFound[index].person_id.first_name + ' ' +
usersFound[index].person_id.second_name + ' ' +
usersFound[index].person_id.last_name;
myObj['email'] = usersFound[index].email;
myObj['job'] = usersFound[index].person_id.job;
myObj['permission_level'] = usersFound[index].permission_level;
// Adding the object to the main array
asignedArray.push(myObj);
}
return res.json(200, {
users: asignedArray
});
}
});
Я надеюсь, что это может быть полезно для вас.