Как обновить коллекцию, используя updateMany в graphql-compose-mongoose? - PullRequest
0 голосов
/ 15 мая 2019

Как обновить коллекцию используя graphql с mongoose?

например, у меня есть коллекция пользователей.

const UserSchema = new mongoose.Schema({
  name: String, // standard types
  contacts: { // another mongoose way for providing embedded documents
    email: String,
    phones: [String], // array of strings
  },
  gender: { // enum field with values
    type: String,
    enum: ['male', 'female', 'ladyboy'],
  },
  someMixed: {
    type: mongoose.Schema.Types.Mixed,
    description: 'Can be any mixed type, that will be treated as JSON GraphQL Scalar Type',
  },
});
const User = mongoose.model('User', UserSchema);

Я конвертирую схему, используя graphql-compose-mongoose

const UserTC = composeWithMongoose(User, customizationOptions);

schemaComposer.Query.addFields({
  userById: UserTC.getResolver('findById'),
  userByIds: UserTC.getResolver('findByIds'),
  userOne: UserTC.getResolver('findOne'),
  userMany: UserTC.getResolver('findMany'),
  userCount: UserTC.getResolver('count'),
  userConnection: UserTC.getResolver('connection'),
  userPagination: UserTC.getResolver('pagination'),
});

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

const graphqlSchema = schemaComposer.buildSchema();
export default graphqlSchema;

На стороне клиента все мои пользователи используютfindMany function.

Теперь я хочу обновить свойство (независимо от того, какое это свойство) в коллекции пользователей, например

users[0].contacts.email = 'blabla@gmail.com';

Мой вопроскак отправить объект (пользователей) на сервер как есть и с помощью функции updateMany?

как это сделать с помощью axios или graphiql?

...