我目前正在關注NestJS 上關于 mongo db 實作的檔案。在示例中,他們使用 Cats 資料庫。在這里,我使用的是 mongo db。
我的架構是(categories.schema.ts):
export type CategoriesDocument = Categories & Document;
@Schema({ collection: 'categories' })
export class Categories {
@Prop()
id: number;
@Prop()
name: string;
@Prop()
slug: string;
@Prop()
created_at: Date;
@Prop()
updated_at: Date;
}
export const CategoriesSchema = SchemaFactory.createForClass(Categories);
我在建構式方法中將其放入我的服務中:
import { Categories, CategoriesDocument } from './schema/categories.schema';
@Injectable()
export class CategoriesService {
constructor(@InjectModel(Categories.name) private categoriesModel: Model<CategoriesDocument>) {}
...
在同一服務中,我有:
async findAll(): Promise<Categories> {
return this.categoriesModel.find().exec();
}
然后我有一個決議器(這是一個 graphql 專案)匯出類 CategoriesResolver { 建構式(私有只讀類別服務:類別服務){} ...
@Query(() => Category, { name: 'ocategory' })
async ogetCategory(
@Args('id', { type: () => ID }) id: number,
): Promise<Category> {
return this.categoriesService.findAll();
}
我的 Mongo 集合看起來像這樣:
_id
:
61bbd7dc86e25adaf8235981
id
:
8
name
:
"Nuts & Biscuits"
slug
:
"nuts-biscuits"
icon
:
null
image
:
Array
details
:
null
parent
:
Object
type_id
:
1
created_at
:
"2021-03-08T08:57:28.000000Z"
updated_at
:
"2021-03-08T08:57:28.000000Z"
deleted_at
:
null
parent_id
:
7
type
:
Object
children
:
Array
我得到的錯誤是:
src/categories/categories.service.ts:74:5 - error TS2739: Type '(Categories & Document<any, any, any> & { _id: any; })[]' is missing the following properties from type 'Categories': id, name, slug, created_at, updated_at
74 return this.categoriesModel.find().exec();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
知道我在這里做錯了什么嗎?
uj5u.com熱心網友回復:
findAll回傳一個陣列。您已經告訴 Typescript 您希望回傳單個物件。將您的回傳型別更新Promise<Category[]>為@Query(() => [Category])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/396458.html
上一篇:在MongoDB中查找唯一索引
