首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用graphql和mongoose进行变异

如何使用graphql和mongoose进行变异
EN

Stack Overflow用户
提问于 2020-11-05 03:21:41
回答 1查看 753关注 0票数 1

我有一个后端与mongoosegraphqlgraphql-compose-mongoose

我遵循graphql-compose-mongoose documentation创建了一个用户模型和模式,如下所示:

模型

代码语言:javascript
复制
import mongoose, { Schema } from 'mongoose';
import { composeMongoose } from 'graphql-compose-mongoose';

export const UserSchema = new Schema({
    phone: { type: String },
    name: { type: String },
    email:    { type: String, required: true },
    password: { type: String, required: true },

    photos: { type: Array },
    matchId: { type: Schema.Types.ObjectId },

    created: { type: Date, default: Date.now },
    active: { type: Boolean, default: false }
});

export const User = mongoose.model('User', UserSchema);
export const UserTC = composeMongoose(User);

Graphql架构

代码语言:javascript
复制
import { User, UserTC } from '../models/User';
import { schemaComposer } from 'graphql-compose';

schemaComposer.Query.addFields({
  userById: UserTC.mongooseResolvers.findById(),
  userByIds: UserTC.mongooseResolvers.findByIds(),
  userOne: UserTC.mongooseResolvers.findOne(),
  userMany: UserTC.mongooseResolvers.findMany(),
  userDataLoader: UserTC.mongooseResolvers.dataLoader(),
  userDataLoaderMany: UserTC.mongooseResolvers.dataLoaderMany(),
  userCount: UserTC.mongooseResolvers.count(),
  userConnection: UserTC.mongooseResolvers.connection(),
  userPagination: UserTC.mongooseResolvers.pagination()
});

schemaComposer.Mutation.addFields({
  userCreateOne: UserTC.mongooseResolvers.createOne(),
  userCreateMany: UserTC.mongooseResolvers.createMany(),
  userUpdateById: UserTC.mongooseResolvers.updateById(),
  userUpdateOne: UserTC.mongooseResolvers.updateOne(),
  userUpdateMany: UserTC.mongooseResolvers.updateMany(),
  userRemoveById: UserTC.mongooseResolvers.removeById(),
  userRemoveOne: UserTC.mongooseResolvers.removeOne(),
  userRemoveMany: UserTC.mongooseResolvers.removeMany()
});

const graphqlSchema = schemaComposer.buildSchema();

export default graphqlSchema;

我想创建一个带有userCreateOne突变的用户,并且我正在GraphQL操场上尝试它。不过,我似乎想不出是怎么回事。我尝试将该字段作为参数传递,但不起作用。

EN

回答 1

Stack Overflow用户

发布于 2020-11-05 03:21:41

我最终还是弄明白了。突变看起来像这样:

代码语言:javascript
复制
mutation {
  userCreateOne(record: {email: "email@example.com", password: "12345"}) {
    record {
      email
      password
      matchId
      created
      active
    }
  }
}

userCreateOne (和mongoose解析器createOne)接受一个对象record,该对象内部是您在模式中定义的字段。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64686420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档