zoukankan      html  css  js  c++  java
  • 文档数据的增删改查 (重点)

    • 文档数据
      • json形式的字符串
      • 除了本身包含的数据, 还会包含一些其他信息
        • _index 所在的索引库
        • _type 类型(所在的表)
        • _id 文档id 一般不会自动生成, 而是让其跟踪基础数据库的主键

    添加数据

    • 使用自定义的文档id 优先考虑
          curl -X PUT /{index}/{type}/{id}
          {
            "field": "value",
            ...
          }
    
    • 自动生成文档id
          curl -X PUT /{index}/{type}
          {
            "field": "value",
            ...
          }
    
    • _version 每修改一次数据, 版本号加1, 可以作为乐观锁的判断标准来使用

    查询数据

    • 根据文档id, 其他的高级查询在下一节
    # 获取所有的字段数据
    curl 127.0.0.1:9200/articles/article/150000?pretty
    
    # 获取一部分字段数据
    curl 127.0.0.1:9200/articles/article/150000?_source=title,content&pretty
    
    # 不获取任何字段的数据  使用率最高
    curl 127.0.0.1:9200/articles/article/150000?_source=false&pretty
    

    判断文档是否存在

    • 注意需要添加 -i 选项
    curl -i -X HEAD 127.0.0.1:9200/articles/article/150000
    
    

    更新文档

    • 本质是先删除该文档的所有数据, 再更新数据, 所以更新时数据必须全部更新
    curl -X PUT 127.0.0.1:9200/articles/article/150000 -H 'Content-Type:application/json' -d '
    {
      "article_id": 150000,
      "user_id": 1,
      "title": "c必须是世界上最好的语言",
      "content": "确实如此",
      "status": 2,
      "create_time": "2019-04-03"
    }'
    
    

    删除文档

    curl -X DELETE 127.0.0.1:9200/articles/article/150000
    

    取出多个文档

    curl -X GET 127.0.0.1:9200/_mget -d '
    {
      "docs": [
        {
          "_index": "articles",
          "_type": "article",
          "_id": 150000
        },
        {
          "_index": "articles",
          "_type": "article",
          "_id": 150001
        }
      ]
    }'
    
    
    • 总结
    # 增加数据
    PUT  /数据库/类型/文档id  -d {}   # 使用自定义的文档id   一般文档id为基础数据库的主键
    
    # 删除数据
    DELETE /数据库/类型/文档id
    
    # 查询数据  根据文档id查询
    GET /数据库/类型/文档id?_source=false    不取出任何字段, 但是会返回文档id    字段名 _id
    
    # 更新数据   不能单独更新一个字段, 必须将该文档的所有都更新(删除原数据, 再覆盖的机制)
    PUT  /数据库/类型/文档id  -d
    
  • 相关阅读:
    【DOM】如何给div的placeholder传参
    【nvm】使用nvm将node升级到指定版本
    【Worktile】升级业务组件库后,http的数据返回整个response而不是data问题及解决方案
    js获取上传文件内容
    【正则】正则表达式-零宽断言(?=,?<=,?!,?<!)及常见报错
    【Angular】动态组件
    【扩展】div获取焦点或可编辑
    【CSS】position新增属性sticky
    thinkphp写接口返回固定的形式方法
    thinkphp5计算文件大小
  • 原文地址:https://www.cnblogs.com/oklizz/p/11443299.html
Copyright © 2011-2022 走看看