Адаптер js-data mongodb только возвращает _id из findAll()

Я использую js-data с адаптером mongodb js-data-mongodb, Я сталкиваюсь с проблемой, когда store.findAll только возвращает _id записи. Другие поля не возвращаются.

Вот моя запись в моем artworks Коллекция в mongoDB:

_id: ObjectId("59bb7ee069d99027f5219667")
uid :"599b73c285b13252e7f54161"
title: "t1"
description: "t1"
imageUrl: "this.artwork.imageUrl"
videoUrl: "this.artwork.videoUrl"

Часть моего определения хранилища js-данных:

// Create a store to hold your Mappers
const store = new Container({});

// Mappers in "store" will use the MongoDB adapter by default
store.registerAdapter('mongodb', adapter, { 'default': true });

store.defineMapper('artwork', {
  collection: 'artworks',
  schema: artworkSchema,
  idAttribute: '_id'
});

И код в моем приложении:

store.findAll('artwork', {uid: '599b73c285b13252e7f54161'}).then((records) => {
    console.log(records);
  })

Выход:[ Record { _id: '59bb7ee069d99027f5219667' } ]

Чего мне не хватает, чтобы все поля записи возвращались в ответе?

Спасибо!

Обновить:

Оказывается, если я удалю свое определение схемы из сопоставителя, поля будут возвращены правильно. Это мое определение схемы. Я не уверен, где я иду не так здесь.

const artworkSchema = new Schema({
  $schema: 'http://json-schema.org/draft-06/schema#',
  title: 'Artwork',
  description: 'Schema for Artwork records',
  type: 'object',
  properties: {
    uid: { type: 'string' },
    title: { type: 'string' },
    description: { type: 'string' },
    imageUrl: { type: 'string' },
    videoUrl: { type: 'string' }
  },
  required: ['uid', 'title', 'imageUrl', 'videoUrl']
});

1 ответ

Ах, это было глупо с моей стороны. findAll() call возвращал массив записей с его атрибутами. console.log() не показывал, но я могу получить данные, используя индекс массива (records[0].title) или используя get('title') как описано в документации.

Другие вопросы по тегам