首页 > 后端开发 > php教程 > Couchdb上的口袋妖怪速成课程

Couchdb上的口袋妖怪速成课程

Jennifer Aniston
发布: 2025-02-14 08:30:12
原创
614 人浏览过

本教程提供了通过带有PHP的HTTP API使用CouchDB(NOSQL数据库)的实用指南。 我们将跳过理论方面,直接潜入执行数据库操作。 我们假设您已经设置了Couchdb和Futon(其Web Admin Console)。

>

A Pokemon Crash Course on CouchDB

>注意:我们为简单起见使用localhost。 如果使用VM,请相应地调整(例如,使用自定义VHOST和转发端口)。

密钥概念:

    > couchdb基础知识:
  • 使用JSON进行存储的NOSQL数据库,用于查询的JavaScript和HTTP API。 >文档结构:
  • 数据存储在单个JSON文档中;没有固定的模式或表格。
  • > http api:
  • 使用http请求(获取,发布,put,delete)与数据库进行交互。
  • > >php集成:
  • >我们将使用guzzle和Doctrine的couchdb客户端演示。
  • 高级功能(简短提及):
  • mapReduce,冲突解决,更改feed。
  • 创建一个数据库:>
  • >使用futon(
https://www.php.cn/link/3bbbc60ff46396969b78a091ff51ac6566

)来创建数据库。 给它一个名称(例如,)。>

创建后,您将看到一个添加文档的接口。请记住,在CouchDB中,文件是基本单位;没有桌子。 您可以在同一数据库中存储不同的数据结构。 对于组织,包括test_couch字段以对文档进行分类(例如,

)。

> A Pokemon Crash Course on CouchDB

>示例文档结构:

type "type": "users"

用户:

    >博客文章:
  • {"id": 123, "fname": "doppo", "lname": "kunikida", "pw": "secret", "hobbies": ["reading", "sleeping"], "type": "users"}
  • HTTP API相互作用: 您可以使用{"title": "The big brown fox", "author": "fox", "text": "...", "publish_date": "2016-07-07", "type": "blog_posts"}或邮递员之类的工具直接与CouchDB HTTP API交互。

创建数据库(curl):>(返回

curl

>创建文档(Postman):
    将邮政请求发送给
  • >,带有,并在身体中发送JSON文档。 curl -X PUT http://localhost:5984/<database_name></database_name>{"ok":true}
  • 散装插入:http://localhost:5984/test_couchContent-Type: application/json

    >在JSON主体中使用一系列文档使用帖子请求。http://localhost:5984/test_couch/_bulk_docs

    A Pokemon Crash Course on CouchDB

    >检索文档:

    • >所有文档:http://localhost:5984/test_couch/_all_docs?include_docs=true>
    • 特定文档: http://localhost:5984/test_couch/<document_id>?include_docs=true</document_id>
    • >
    • 特定的修订:添加到上面的URL。> &rev=<revision_id></revision_id>> couchdb跟踪修订;每个更新都会创建一个新的修订版。 Futon允许浏览这些修订。
    • >

    A Pokemon Crash Course on CouchDB > views(mapReduce):

    视图提供查询功能。 使用映射在蒲团中创建视图并减少功能(JavaScript)。 这些功能保存在设计文档中。>

    >A Pokemon Crash Course on CouchDB >示例地图函数(训练器的过滤器):

    >
    • >通过网址访问视图:
    function(doc) {
      emit(doc.trainer, doc.name);
    }
    登录后复制
    更新文档:

    http://localhost:5984/test_couch/_design/<design_doc>/_view/<view_name>?key="Ash"

    >将PUT请求发送到文档URL,包括带有最新修订ID的字段。 您必须提供整个更新的文档。

    _rev>删除文档:

    >将删除请求发送到文档URL,包括带有最新修订ID的字段。A Pokemon Crash Course on CouchDB

    php Integration(guzzle):

    _rev)

    >

    http://localhost:5984/test_couch/<document_id>?rev=<revision_id>

    > php Integration(Doctrine couchdb客户端):

    >学说的CouchDB客户端提供了更高级别的抽象。 (使用:安装)

    composer require guzzlehttp/guzzle

    结论:
    <?php
    require 'vendor/autoload.php';
    use GuzzleHttp\Client;
    
    $client = new Client(['base_uri' => 'http://localhost:5984']);
    
    // ... (GET, POST, PUT, DELETE examples using Guzzle similar to the curl and Postman examples above) ...
    ?>
    登录后复制

    本教程使用其HTTP API和PHP对CouchDB进行了实用的介绍。 探索更高级功能的官方文档和权威指南。 未来的帖子将更深入地研究使用Couchdb的构建应用程序。

以上是Couchdb上的口袋妖怪速成课程的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板