文档数据的增删改查 (重点)

  • 文档数据
    • 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
posted @ 2019-09-01 19:34  太虚真人  阅读(314)  评论(0编辑  收藏  举报