Буткемп, который я изучал в postgres с использованием библиотек knex / bookshelf, но на данный момент я не знаю, как использовать регулярные запросы (т. Е. SELECT FROM и т. Д.).Я до сих пор не пробовал реляционный запрос с библиотеками knex / bookshelf, и я не могу заставить его работать.Я посмотрел на документацию и насколько я могу судить, я использовал синтаксис, который они говорят.
exports.getStudentsByClass = (key) => {
return Classroom.where({ id: key }).fetch({
withRelated: 'student'
})
.then(classroom => {
const students = classroom.related('student')
console.log(classroom.models.map(student => {
studentList.attributes
}))
return classroom
})
.catch(err => {
console.log(err)
})
}
Это функция, которую я использую для запроса базы данных.Когда я консоль журнала данных, это то, что я получаю
CollectionBase {
model:
{ [Function]
super_: [Function: Events],
extend: [Function: extend],
extended: [Function: extended],
__super__:
ModelBase {
_builder: [Function: builderFn],
_relation: [Function: _relation],
Collection: [Object] },
NotFoundError: [Function: ErrorCtor],
NoRowsUpdatedError: [Function: ErrorCtor],
NoRowsDeletedError: [Function: ErrorCtor],
forge: [Function: forge],
collection: [Function: collection],
count: [Function: count],
fetchAll: [Function: fetchAll],
where: [Function],
query: [Function] },
length: 5,
models:
[ ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c77',
id: 7 },
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c78',
id: 4 },
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c79',
id: 9 },
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c80',
id: 14 },
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c81',
id: 10 } ],
_byId:
{ '4':
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c78',
id: 4 },
'7':
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c77',
id: 7 },
'9':
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c79',
id: 9 },
'10':
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c81',
id: 10 },
'14':
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c80',
id: 14 },
c77:
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c77',
id: 7 },
c78:
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c78',
id: 4 },
c79:
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c79',
id: 9 },
c80:
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c80',
id: 14 },
c81:
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c81',
id: 10 } },
relatedData:
RelationBase {
targetTableName: 'student',
targetIdAttribute: 'id',
type: 'hasMany',
target:
{ [Function]
super_: [Function: Events],
extend: [Function: extend],
extended: [Function: extended],
__super__: [Object],
NotFoundError: [Function: ErrorCtor],
NoRowsUpdatedError: [Function: ErrorCtor],
NoRowsDeletedError: [Function: ErrorCtor],
forge: [Function: forge],
collection: [Function: collection],
count: [Function: count],
fetchAll: [Function: fetchAll],
where: [Function],
query: [Function] },
foreignKey: 'classroom_id',
foreignKeyTarget: undefined,
parentId: 6,
parentTableName: 'classroom',
parentIdAttribute: 'id',
parentAttributes:
{ id: 6,
created_at: 2018-04-24T22:23:34.819Z,
updated_at: 2018-04-24T22:23:34.819Z,
name: ' Classroom 1' },
parentFk: 6 } }
Так что я не уверен, как заставить это работать