Как обновить коллекцию используя 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
?