Book Image

CouchDB and PHP Web Development Beginner's Guide

By : Tim Juravich
Book Image

CouchDB and PHP Web Development Beginner's Guide

By: Tim Juravich

Overview of this book

CouchDB is a NoSQL database which is making waves in the development world. It's the tool of choice for many PHP developers so they need to understand the robust features of CouchDB and the tools that are available to them.CouchDB and PHP Web Development Beginner's Guide will teach you the basics and fundamentals of using CouchDB within a project. You will learn how to build an application from beginning to end, learning the difference between the "quick way"ù to do things, and the "right way"ù by looking through a variety of code examples and real world scenarios. You will start with a walkthrough of setting up a sound development environment and then learn to create a variety of documents manually and programmatically. You will also learn how to manage their source control with Git and keep track of their progress. With each new concept, such as adding users and posts to your application, the author will take you through code step-by-step and explain how to use CouchDB's robust features. Finally, you will learn how to easily deploy your application and how to use simple replication to scale your application.
Table of Contents (17 chapters)
CouchDB and PHP Web Development Beginner's Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
4
Starting your Application

Time for action — querying the posts_by_user view


Remember that design document is still a document, which means that we can query it just as we would query a regular document. The only difference will be that we need to use a slightly different URL pattern to hit the correct file.

  1. 1. Open Terminal.

  2. 2. Use a curl statement to query our design document by passing a key of johndoe (or another user in your database that has a decent amount of posts), then pass it through python mjson.tool to make it a bit prettier:

    curl http://127.0.0.1:5984/verge/_design/application/_view/posts_by_user?key=%22johndoe%22 | python -mjson.tool
    
    
  3. 3. The terminal will respond with something similar to the following:

    {
    "offset": 0,
    "rows": [
    {
    "id": "352e5c2d51fb1293c44a2146d4003aa3",
    "key": "johndoe",
    "value": {
    "_id": "352e5c2d51fb1293c44a2146d4003aa3",
    "_rev": "3-ced38337602bd6c0587dc2d9792f6cff",
    "content": "I don\\'t like peanut butter.",
    "date_created": "Wed, 28 Sep 2011 13:44:09 -0700",
    "type": "post",
    "user...