我正在使用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-data 存储定义的一部分:
// 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']
});