如何在NestJS上使用graphql向猫鼬模式添加默认值

时间:2019-09-05 18:45:07

标签: mongoose graphql nestjs

我尝试使用graphql学习nestjs。因此,我阅读了带有graphql和猫鼬的nest.js文档。

我以猫为例。我可以创建一个cat文档并对其进行查询。

猫鼬实现: https://docs.nestjs.com/techniques/mongodb

Graphql的实现: https://docs.nestjs.com/graphql/resolvers-map

cat.schema.ts

import * as mongoose from 'mongoose';
import {DateScalar} from '../scalr/date.scalar';

export const CatSchema = new mongoose.Schema({
  name: String,
  age: Number,
  breed: String,
  creationDate : { type: Date, required: true, default: Date.now },
});

cat.type.ts

import { ObjectType, Field, Int, ID } from 'type-graphql';
import { DateScalar } from '../scalr/date.scalar';

@ObjectType()
export class CatType {
  @Field(() => ID)
  id: string;
  @Field(() => DateScalar)
  creationDate: Date;
  @Field()
  readonly name: string;
  @Field(() => Int)
  readonly age: number;
  @Field()
  readonly breed: string;
}

cat.resolver.ts

import {Resolver, Query, Mutation, Args} from '@nestjs/graphql';
import { CatsService } from './cats.service';
import { CatType } from '../dto/cat.type';
import { CatInput } from '../inputs/cat.input';

@Resolver()
export class CatsResolver {
  constructor(private readonly catsService: CatsService) {}

  @Query(() => String)
    async hello() {
    return 'hello';
  }

  @Query(() => [CatType])
  async cats() {
    return this.catsService.findAll();
  }

  @Mutation(() => CatType)
  async createCat(@Args('input') input: CatInput) {
    return this.catsService.create(input);
  }
}

现在是我的问题。 ID字段是“自动”生成的。我认为是猫鼬。

在mongodb数据库上创建文档的过程中,我如何在服务器端“自动”生成一个创建日期。

之后,我尝试添加一个updatedat字段。可以在服务器端以相同的方式完成此操作吗?

先谢谢您

0 个答案:

没有答案