首页 > 数据库 >.Net6 + GraphQL + MongoDb 实现Mutate更新数据

.Net6 + GraphQL + MongoDb 实现Mutate更新数据

时间:2023-02-13 20:57:09浏览次数:48  
标签:Mutate restaurant MongoDb Title GraphQL title input Post

介绍

Query的部分我们讲完了,现在讲一下Mutate(就是操作增修删) 本节讲一下修改,删除就不讲了

正文

    public record UpdatePostInput(string PostId,string Title, string Author);   


    public record UpdatePostPayload(Post Post);

新增函数

        public async Task<UpdatePostPayload> UpdatePostAsync(
            [Service] DbContext db,
            UpdatePostInput input)
        {

            var _cbf = Builders<Post>.Filter
                .Eq(restaurant => restaurant.Id, input.PostId);


            var _cbu = Builders<Post>.Update
                .Set(restaurant => restaurant.Title, input.Title)
                .Set(restaurant => restaurant.Author, input.Author);

            _ = await db.Post.UpdateOneAsync(_cbf, _cbu);

            return new UpdatePostPayload(await db.Post.Find(x => x.Id == input.PostId).FirstOrDefaultAsync());


        }

这时候我们去https://localhost:7145/graphql/调用接口

query testGetBookByTitle {
  posts {
    items {
      id
      title
      author
      comments {
        name
      }
    }
  }
}

# 63e736ba01210efaee01a764

mutation updatePost {
  updatePost(input: { title:"11 aa", author:" au 2222", postId:"63e736ba01210efaee01a764" }) {
    post {
      title
      author
    }
  }
}

结语

本系列主要将GraphQL的使用,示例项目不能应用于生产,后续发一些GraphQL库出来讲解生产中的实际应用

联系作者:加群:867095512 @MrChuJiu

标签:Mutate,restaurant,MongoDb,Title,GraphQL,title,input,Post
From: https://www.cnblogs.com/MrChuJiu/p/17117757.html

相关文章

  • mongodb中ObjectId查询的结果一直变的问题
    二者本来应该是相同的值,但是每次查询都在变化,@Id@ApiModelProperty(value="主键")@Field(value="_id")var_id:ObjectId?=null@NotEmpty(groups=[AddGroup::......
  • 【mongoDB】mongoDB如何删除表中所有数据?
    方式1:db.集合名.remove({});{}中不加条件,会直接逐条删除结合中所有数据,但是会保留索引,删除速度慢适用于删除数据量小,且不想重建索引如果数据量大,通过这种方式删除,可能会......
  • logstash mutate gsub 正则替换内容
    记录下,网络设备默认有些日志内容无用,用正则替换删除input{    udp{host=>"127.0.0.1"port=>515type=>"Hillstone"}}filter{  mutate{   ......
  • GraphQL 实现Query按需检索Projections
    介绍上一节我们实现一个简单Query查询,从监控信息上面来看我们调用数据使用的是全表检索。这一节我看来看下如何实现按需检索正文修改Programbuilder.Services.Add......
  • GraphQL 实现一个简单的Query
    介绍上一节我们简单搭建了项目的结构本节我们来实现一个简单Query查询正文新建PostQuery.cs,新建Core文件夹存放publicclassPostQuery{publicIE......
  • GraphQL 项目搭建
    介绍讲一下GraphQL的各种特性和如何使用,让大家感受下。CODE4NOTHING大佬之前在博客园更新了一些GraphQL的知识是和EF的结合使用,文章使用的实体模型来自于CODE4NOTHING大......
  • Deepin系统中安装Mongodb, 更改mongod.conf碰到问题
    1.下载MongoDB/MongoDBComapss下载最新的mongodb community版本,我使用的是Deepin20.8对应的是Debian10.0版本,当前版本号6.0.4.https://www.mongodb.com/try/down......
  • 获取PHP版本,获取Redis版本,获取MongoDB版本输出已安装扩展
    <?phperror_reporting(E_ALL);ini_set('display_errors',1);echo'<h1style="text-align:center;">欢迎使用DNMP!</h1>';echo'<h2>版本信息-----willem</h2>';echo'<ul>......
  • 技术瓶颈?如何解决MongoDB超大块数据问题?
    大家好,我是哪吒,最近项目在使用MongoDB作为图片和文档的存储数据库,为啥不直接存MySQL里,还要搭个MongoDB集群,麻不麻烦?让我们一起,一探究竟,继续学习MongoDB的事务、连接池以及聚......
  • 开放API 与 查询语言GraphQL
    1、开放API什么是API?API(ApplicationProgrammingInterface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。用来提供应用程序与开......