CouchDB - Hướng dẫn nhanh

Hệ quản trị cơ sở dữ liệu cung cấp cơ chế lưu trữ và truy xuất dữ liệu. Có ba loại hệ quản trị cơ sở dữ liệu chính là RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ), OLAP (Hệ thống xử lý phân tích trực tuyến) và NoSQL.

RDBMS

RDBMS là viết tắt của Relational Database Management System. RDBMS là cơ sở cho SQL và cho tất cả các hệ thống cơ sở dữ liệu hiện đại như MS SQL Server, IBM DB2, Oracle, MySQL và Microsoft Access.

Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) là một hệ quản trị cơ sở dữ liệu (DBMS) dựa trên mô hình quan hệ như được giới thiệu bởi EF Codd.

Dữ liệu trong RDBMS được lưu trữ trong các đối tượng cơ sở dữ liệu được gọi là tables. Bảng là một tập hợp các mục dữ liệu có liên quan và nó bao gồm các cột và hàng. Nó chỉ lưu trữ dữ liệu có cấu trúc.

OLAP

Máy chủ xử lý phân tích trực tuyến (OLAP) dựa trên mô hình dữ liệu đa chiều. Nó cho phép các nhà quản lý và nhà phân tích có được cái nhìn sâu sắc về thông tin thông qua việc truy cập thông tin nhanh chóng, nhất quán và tương tác.

Cơ sở dữ liệu NoSQL

Cơ sở dữ liệu NoSQL (đôi khi được gọi là Không chỉ SQL) là một cơ sở dữ liệu cung cấp cơ chế lưu trữ và truy xuất dữ liệu khác với quan hệ bảng được sử dụng trong cơ sở dữ liệu quan hệ. Các cơ sở dữ liệu này không có giản đồ, hỗ trợ sao chép dễ dàng, có API đơn giản, cuối cùng nhất quán và có thể xử lý lượng dữ liệu khổng lồ (dữ liệu lớn).

Mục tiêu chính của cơ sở dữ liệu NoSQL là có những điều sau:

  • Sự đơn giản của thiết kế,
  • Chia tỷ lệ theo chiều ngang và
  • Kiểm soát tốt hơn đối với tình trạng sẵn có.

Cơ sở dữ liệu NoSQL sử dụng cấu trúc dữ liệu khác so với cơ sở dữ liệu quan hệ. Nó làm cho một số hoạt động nhanh hơn trong NoSQL. Tính phù hợp của một cơ sở dữ liệu NoSQL nhất định phụ thuộc vào vấn đề mà nó phải giải quyết. Các cơ sở dữ liệu này lưu trữ cả dữ liệu có cấu trúc và dữ liệu không có cấu trúc như tệp âm thanh, tệp video, tài liệu, v.v. Các cơ sở dữ liệu NoSQL này được phân loại thành ba loại và chúng được giải thích bên dưới.

Key-value Store- Các cơ sở dữ liệu này được thiết kế để lưu trữ dữ liệu theo các cặp khóa-giá trị và các cơ sở dữ liệu này sẽ không có bất kỳ lược đồ nào. Trong các cơ sở dữ liệu này, mỗi giá trị dữ liệu bao gồm một khóa được lập chỉ mục và một giá trị cho khóa đó.

Ví dụ - BerkeleyDB, Cassandra, DynamoDB, Riak.

Column Store- Trong các cơ sở dữ liệu này, dữ liệu được lưu trữ trong các ô được nhóm thành các cột dữ liệu, và các cột này được tiếp tục nhóm lại thành Họ cột. Các họ cột này có thể chứa bất kỳ số lượng cột nào.

Ví dụ - BigTable, HBase và HyperTable.

Document Store- Đây là những cơ sở dữ liệu được phát triển dựa trên ý tưởng cơ bản về các kho khóa-giá trị nơi "tài liệu" chứa nhiều dữ liệu phức tạp hơn. Ở đây, mỗi tài liệu được gán một khóa duy nhất, được sử dụng để truy xuất tài liệu. Chúng được thiết kế để lưu trữ, truy xuất và quản lý thông tin hướng tài liệu, còn được gọi là dữ liệu bán cấu trúc.

Ví dụ - CouchDB và MongoDB.

CouchDB là gì?

CouchDB là một cơ sở dữ liệu mã nguồn mở được phát triển bởi nền tảng phần mềm Apache. Trọng tâm là tính dễ sử dụng, bao quát web. Nó là một cơ sở dữ liệu lưu trữ tài liệu NoSQL.

Nó sử dụng JSON, để lưu trữ dữ liệu (tài liệu), java script làm ngôn ngữ truy vấn của nó để chuyển đổi tài liệu, giao thức http cho api để truy cập tài liệu, truy vấn các chỉ mục bằng trình duyệt web. Nó là một ứng dụng đa tổng thể được phát hành vào năm 2005 và nó đã trở thành một dự án apache vào năm 2008.

Tại sao CouchDB?

  • CouchDB có API REST dựa trên HTTP, giúp giao tiếp với cơ sở dữ liệu dễ dàng. Và cấu trúc đơn giản của các tài nguyên và phương thức HTTP (GET, PUT, DELETE) rất dễ hiểu và dễ sử dụng.

  • Khi chúng tôi lưu trữ dữ liệu trong cấu trúc dựa trên tài liệu linh hoạt, không cần phải lo lắng về cấu trúc của dữ liệu.

  • Người dùng được cung cấp ánh xạ dữ liệu mạnh mẽ, cho phép truy vấn, kết hợp và lọc thông tin.

  • CouchDB cung cấp tính năng sao chép dễ sử dụng, bằng cách sử dụng đó bạn có thể sao chép, chia sẻ và đồng bộ hóa dữ liệu giữa cơ sở dữ liệu và máy.

Mô hình dữ liệu

  • Cơ sở dữ liệu là cấu trúc / vùng chứa dữ liệu ngoài cùng trong CouchDB.

  • Mỗi cơ sở dữ liệu là một tập hợp các tài liệu độc lập.

  • Mỗi tài liệu duy trì dữ liệu riêng và lược đồ độc lập.

  • Siêu dữ liệu tài liệu chứa thông tin sửa đổi, giúp có thể hợp nhất các khác biệt đã xảy ra trong khi cơ sở dữ liệu bị ngắt kết nối.

  • CouchDB thực hiện kiểm soát đồng thời nhiều phiên bản, để tránh phải khóa trường cơ sở dữ liệu trong khi ghi.

Tính năng của CouchDB: Giảm nội dung

Kho lưu trữ tài liệu

CouchDB là một cơ sở dữ liệu NoSQL lưu trữ tài liệu. Nó cung cấp phương tiện lưu trữ các tài liệu với các tên duy nhất và nó cũng cung cấp một API gọi là RESTful HTTP API để đọc và cập nhật (thêm, sửa, xóa) các tài liệu cơ sở dữ liệu.

Trong CouchDB, tài liệu là đơn vị dữ liệu chính và chúng cũng bao gồm siêu dữ liệu. Các trường tài liệu được đặt tên duy nhất và chứa các giá trị thuộc nhiều loại khác nhau (văn bản, số, Boolean, danh sách, v.v.) và không có giới hạn đặt cho kích thước văn bản hoặc số phần tử.

Các bản cập nhật tài liệu (thêm, sửa, xóa) tuân theo Atomicity, tức là chúng sẽ được lưu hoàn toàn hoặc không lưu chút nào. Cơ sở dữ liệu sẽ không có bất kỳ tài liệu được lưu hoặc chỉnh sửa một phần nào.

Cấu trúc tài liệu Json

{
   "field" : "value",
   "field" : "value",
   "field" : "value",
}

Thuộc tính ACID

CouchDB chứa các thuộc tính ACID là một trong những tính năng của nó.

Tính nhất quán - Khi dữ liệu trong CouchDB đã được cam kết, thì dữ liệu này sẽ không bị sửa đổi hoặc ghi đè. Do đó, CouchDB đảm bảo rằng tệp cơ sở dữ liệu sẽ luôn ở trạng thái nhất quán.

Mô hình điều khiển đồng thời nhiều phiên bản (MVCC) được sử dụng bởi các lần đọc CouchDB, do đó máy khách sẽ nhìn thấy ảnh chụp nhanh nhất quán của cơ sở dữ liệu từ đầu đến cuối hoạt động đọc.

Bất cứ khi nào tài liệu được cập nhật, CouchDB sẽ đẩy dữ liệu vào đĩa và tiêu đề cơ sở dữ liệu cập nhật được ghi thành hai phần liên tiếp và giống hệt nhau để tạo thành 4k đầu tiên của tệp, sau đó đồng bộ hóa vào đĩa. Cập nhật một phần trong quá trình xả sẽ bị loại bỏ.

Nếu lỗi xảy ra trong khi cam kết tiêu đề, bản sao còn sót lại của các tiêu đề giống hệt trước đó sẽ vẫn còn, đảm bảo tính đồng nhất của tất cả dữ liệu đã cam kết trước đó. Ngoại trừ khu vực tiêu đề, kiểm tra tính nhất quán hoặc sửa chữa sau sự cố hoặc mất điện là không bao giờ cần thiết.

Nén chặt

Bất cứ khi nào không gian trong tệp cơ sở dữ liệu bị lãng phí trên một mức độ nhất định, tất cả dữ liệu đang hoạt động sẽ được sao chép (nhân bản) sang một tệp mới. Khi quá trình sao chép hoàn tất, tệp cũ sẽ bị loại bỏ. Tất cả điều này được thực hiện bởi quá trình nén. Cơ sở dữ liệu vẫn trực tuyến trong quá trình nén và tất cả các cập nhật và đọc được phép hoàn tất thành công.

Lượt xem

Dữ liệu trong CouchDB được lưu trữ trong các tài liệu bán cấu trúc linh hoạt với các cấu trúc ngầm định riêng lẻ, nhưng nó là một mô hình tài liệu đơn giản để lưu trữ và chia sẻ dữ liệu. Nếu chúng ta muốn xem dữ liệu của mình theo nhiều cách khác nhau, chúng ta cần một cách để lọc, sắp xếp và báo cáo về dữ liệu chưa được phân tách thành các bảng.

Để giải quyết vấn đề này, CouchDB cung cấp một mô hình khung nhìn. Chế độ xem là phương pháp tổng hợp và báo cáo các tài liệu trong cơ sở dữ liệu và được xây dựng theo yêu cầu để tổng hợp, nối và báo cáo các tài liệu trong cơ sở dữ liệu. Bởi vì các dạng xem được tạo động và không ảnh hưởng đến tài liệu bên dưới, bạn có thể có nhiều dạng xem khác nhau của cùng một dữ liệu tùy thích.

Lịch sử

  • CouchDB được viết bằng ngôn ngữ lập trình Erlang.
  • Nó được bắt đầu bởi Damien Katz vào năm 2005.
  • CouchDB trở thành một dự án Apache vào năm 2008.

Phiên bản hiện tại của CouchDB là 1.61.

Chương này hướng dẫn bạn cách cài đặt CouchDB trong windows cũng như hệ thống Linux.

Cài đặt CouchDB trong Windows

Tải xuống CouchDB

Trang web chính thức của CouchDB là https://couchdb.apache.org. Nếu bạn nhấp vào liên kết nhất định, bạn có thể nhận được trang chủ của trang web chính thức của CouchDB như hình dưới đây.

Nếu bạn nhấp vào nút tải xuống sẽ dẫn đến một trang cung cấp các liên kết tải xuống CouchDB ở nhiều định dạng khác nhau. Ảnh chụp nhanh sau đây minh họa tương tự.

Chọn liên kết tải xuống cho hệ thống cửa sổ và chọn một trong các gương được cung cấp để bắt đầu tải xuống của bạn.

Cài đặt CouchDB

CouchDB sẽ được tải xuống hệ thống của bạn dưới dạng tệp thiết lập có tên setup-couchdb-1.6.1_R16B02.exe. Chạy tệp thiết lập và tiến hành cài đặt.

Sau khi cài đặt, hãy mở giao diện web tích hợp sẵn của CouchDB bằng cách truy cập vào phần sau link: http://127.0.0.1:5984/. Nếu mọi thứ suôn sẻ, điều này sẽ cung cấp cho bạn một trang web có kết quả sau.

{
   "couchdb":"Welcome","uuid":"c8d48ac61bb497f4692b346e0f400d60",
   "version":"1.6.1",
   "vendor":{
      "version":"1.6.1","name":"The Apache Software Foundation"
   }
}

Bạn có thể tương tác với giao diện web CouchDB bằng cách sử dụng url sau:

http://127.0.0.1:5984/_utils/

Điều này cho bạn thấy trang chỉ mục của Futon, là giao diện web của CouchDB.

Cài đặt CouchDB trong hệ thống Linux

Đối với nhiều hệ thống có hương vị Linux, họ cung cấp CouchDB nội bộ. Để cài đặt CouchDB này, hãy làm theo hướng dẫn.

Trên Ubuntu và Debian, bạn có thể sử dụng -

sudo aptitude install couchdb

Trên Gentoo Linux có sẵn bản ebuild CouchDB -

sudo emerge couchdb

Nếu hệ thống Linux của bạn không có CouchDB, hãy làm theo phần tiếp theo để cài đặt CouchDB và các phụ thuộc của nó.

Cài đặt phụ thuộc CouchDB

Sau đây là danh sách các phụ thuộc sẽ được cài đặt để có CouchDB trong hệ thống của bạn−

  • Erlang OTP
  • ICU
  • OpenSSL
  • Mozilla SpiderMonkey
  • GNU Make
  • Bộ sưu tập trình biên dịch GNU
  • libcurl
  • help2man
  • Python cho tài liệu
  • Trăn Sphinx

Để cài đặt các phần phụ thuộc này, hãy nhập các lệnh sau vào terminal. Ở đây chúng tôi đang sử dụng Centos 6.5 và các lệnh sau sẽ cài đặt các phần mềm cần thiết tương thích với Centos 6.5.

$sudo yum install autoconf
$sudo yum install autoconf-archive
$sudo yum install automake
$sudo yum install curl-devel
$sudo yum install erlang-asn1
$sudo yum install erlang-erts
$sudo yum install erlang-eunit
$sudo yum install erlang-os_mon
$sudo yum install erlang-xmerl
$sudo yum install help2man
$sudo yum install js-devel
$sudo yum install libicu-devel
$sudo yum install libtool
$sudo yum install perl-Test-Harness

Note −Đối với tất cả các lệnh này, bạn cần sử dụng sudo. Quy trình sau đây chuyển đổi một người dùng bình thường thành một sudoer.

  • Đăng nhập với quyền root trong người dùng quản trị

  • Mở sudo tập tin bằng lệnh sau:

visudo
  • Sau đó, chỉnh sửa như hình dưới đây để cấp cho người dùng hiện tại của bạn các đặc quyền sudoer -
Hadoop All=(All) All , and press esc : x to write the changes to the file.

Sau khi tải xuống tất cả các phần phụ thuộc trong hệ thống của bạn, hãy tải xuống CouchDB theo hướng dẫn nhất định.

Tải xuống CouchDB

Nền tảng phần mềm Apache sẽ không cung cấp tệp .tar hoàn chỉnh cho CouchDB, vì vậy bạn phải cài đặt nó từ nguồn.

Tạo một thư mục mới để cài đặt CouchDB, duyệt đến thư mục đã tạo đó và tải xuống mã nguồn CouchDB bằng cách thực hiện các lệnh sau:

$ cd
$ mkdir CouchDB
$ cd CouchDB/
$ wget
http://www.google.com/url?q=http%3A%2F%2Fwww.apache.org%2Fdist%2Fcouchdb%2Fsource%2F1.6.1%2Fapache-couchdb-1.6.1.tar.gz

Thao tác này sẽ tải xuống tệp nguồn CouchDB vào hệ thống của bạn. Bây giờ giải nénapache-couchdb-1.6.1.tar.gz như hình bên dưới.

$ tar zxvf apache-couchdb-1.6.1.tar.gz

Cấu hình CouchDB

Để cấu hình CouchDB, hãy làm như sau:

  • Duyệt đến thư mục chính của CouchDB.
  • Đăng nhập với tư cách siêu người dùng.
  • Định cấu hình bằng lời nhắc ./configure như hình dưới đây -
$ cd apache-couchdb-1.6.1
$ su
Password:
# ./configure --with-erlang=/usr/lib64/erlang/usr/include/

Nó cung cấp cho bạn kết quả sau tương tự như được hiển thị bên dưới với dòng kết luận: You have configured Apache CouchDB, time to relax.

# ./configure --with-erlang=/usr/lib64/erlang/usr/include/

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
………………………………………………………..
……………………….
config.status: creating var/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: creating src/snappy/google-snappy/config.h
config.status: src/snappy/google-snappy/config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

You have configured Apache CouchDB, time to relax.

Run `make && sudo make install' to install.

Cài đặt CouchDB

Bây giờ gõ lệnh sau để cài đặt CouchDB trong hệ thống của bạn.

# make && sudo make install

Nó cài đặt CouchDB trong hệ thống của bạn với dòng kết luận: You have installed Apache CouchDB, time to relax.

Khởi động CouchDB

Để khởi động CouchDB, hãy duyệt đến thư mục chính CouchDB và sử dụng lệnh sau:

$ cd apache-couchdb-1.6.1
$ cd etc
$ couchdb start

Nó khởi động CouchDB đưa ra kết quả sau: -

Apache CouchDB 1.6.1 (LogLevel=info) is starting.
Apache CouchDB has started. Time to relax.
[info] [lt;0.31.0gt;] Apache CouchDB has started on http://127.0.0.1:5984/
[info] [lt;0.112.0gt;] 127.0.0.1 - - GET / 200
[info] [lt;0.112.0gt;] 127.0.0.1 - - GET /favicon.ico 200

xác minh

Vì CouchDB là một giao diện web, hãy thử nhập url trang chủ sau vào trình duyệt.

http://127.0.0.1:5984/

Nó tạo ra kết quả sau:

{
   "couchdb":"Welcome",
   "uuid":"8f0d59acd0e179f5e9f0075fa1f5e804",
   "version":"1.6.1",
   "vendor":{
      "name":"The Apache Software Foundation",
      "version":"1.6.1"
   }
}

cURL Utility

Tiện ích cURL là một cách để giao tiếp với CouchDB.

Nó là một công cụ để truyền dữ liệu từ hoặc tới máy chủ, sử dụng một trong các giao thức được hỗ trợ (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP hoặc FILE). Lệnh được thiết kế để hoạt động mà không cần sự tương tác của người dùng. cURL cung cấp một loạt các thủ thuật hữu ích như hỗ trợ proxy, xác thực người dùng, tải lên ftp, bài đăng HTTP, kết nối SSL (https :), cookie, tiếp tục truyền tệp và hơn thế nữa.

Tiện ích cURL có sẵn trong các hệ điều hành như UNIX, Linux, Mac OS X và Windows. Nó là một tiện ích dòng lệnh sử dụng mà người dùng có thể truy cập giao thức HTTP ngay từ dòng lệnh. Chương này hướng dẫn bạn cách sử dụng tiện ích cURL.

Sử dụng Tiện ích cURL

Bạn có thể truy cập bất kỳ trang web nào bằng tiện ích cURL bằng cách chỉ cần gõ cURL theo sau là địa chỉ trang web như hình dưới đây -

curl www.tutorialspoint.com/

Theo mặc định, tiện ích cURL trả về mã nguồn của trang được yêu cầu. Nó hiển thị mã này trên cửa sổ đầu cuối.

Tùy chọn tiện ích cURL

Tiện ích cURL cung cấp nhiều tùy chọn khác nhau để làm việc và bạn có thể xem chúng trong phần trợ giúp tiện ích cURL.

Đoạn mã sau đây hiển thị một số phần của trợ giúp cURL.

$ curl --help
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
      --anyauth Pick "any" authentication method (H)
   -a/--append Append to target file when uploading (F/SFTP)
      --basic Use HTTP Basic Authentication (H)
      --cacert <file> CA certificate to verify peer against (SSL)
-d/--data <data> HTTP POST data (H)
      --data-ascii <data> HTTP POST ASCII data (H)
      --data-binary <data> HTTP POST binary data (H)
      --data-urlencode <name=data/name@filename> HTTP POST data
urlencoded (H)
      --delegation STRING GSS-API delegation permission
      --digest Use HTTP Digest Authentication (H)
      --disable-eprt Inhibit using EPRT or LPRT (F)
      --disable-epsv Inhibit using EPSV (F)

   -F/--form <name=content> Specify HTTP multipart POST data (H)
      --form-string <name=string> Specify HTTP multipart POST data (H)
      --ftp-account <data> Account data to send when requested by server
(F)
      --ftp-alternative-to-user <cmd> String to replace "USER [name]" (F)
      --ftp-create-dirs Create the remote dirs if not present (F)
      --ftp-method [multi cwd/no cwd/single cwd] Control CWD usage (F)
      --ftp-pasv Use PASV/EPSV instead of PORT (F)

   -G/--get Send the -d data with a HTTP GET (H)

   -H/--header <line> Custom header to pass to server (H)
   -I/--head Show document info only
   -h/--help This help text
      --hostpubmd5 <md5> Hex encoded MD5 string of the host public key.
(SSH)
   -0/--http1.0 Use HTTP 1.0 (H)
      --ignore-content-length Ignore the HTTP Content-Length header
   -i/--include Include protocol headers in the output (H/F)

   -M/--manual Display the full manual

   -o/--output <file> Write output to <file> instead of stdout
      --pass <pass> Pass phrase for the private key (SSL/SSH)
      --post301 Do not switch to GET after following a 301
redirect (H)
      --post302 Do not switch to GET after following a 302
redirect (H)
   -O/--remote-name Write output to a file named as the remote file
      --remote-name-all Use the remote file name for all URLs
   -R/--remote-time Set the remote file's time on the local output
   -X/--request <command> Specify request command to use
      --retry <num> Retry request <num> times if transient problems
occur
      --retry-delay <seconds> When retrying, wait this many seconds
between each
      --retry-max-time <seconds> Retry only within this period
   -T/--upload-file <file> Transfer <file> to remote site
      --url <URL> Set URL to work with
   -B/--use-ascii Use ASCII/text transfer

Trong khi giao tiếp với CouchDB, một số tùy chọn của tiện ích cURL đã được sử dụng rộng rãi. Sau đây là những mô tả ngắn gọn về một số tùy chọn quan trọng của tiện ích cURL bao gồm cả những tùy chọn được CouchDB sử dụng.

-X cờ

(HTTP) Chỉ định phương thức yêu cầu tùy chỉnh được sử dụng khi giao tiếp với máy chủ HTTP. Yêu cầu đã chỉ định được sử dụng thay vì phương thức được sử dụng khác (mặc định là GET). Đọc thông số kỹ thuật HTTP 1.1 để biết chi tiết và giải thích.

(FTP) Chỉ định một lệnh FTP tùy chỉnh để sử dụng thay vì LIST khi thực hiện danh sách tệp với ftp.

-H

(HTTP) Tiêu đề bổ sung được sử dụng khi tải một trang web. Lưu ý rằng nếu bạn thêm tiêu đề tùy chỉnh có cùng tên với một trong những tiêu đề nội bộ mà cURL sẽ sử dụng, thì tiêu đề đặt bên ngoài của bạn sẽ được sử dụng thay vì tiêu đề nội bộ. Điều này cho phép bạn thực hiện công việc thậm chí còn phức tạp hơn cURL thường làm. Bạn không nên thay thế các tiêu đề được thiết lập nội bộ mà không biết rõ mình đang làm gì. Thay thế tiêu đề nội bộ bằng tiêu đề không có nội dung ở bên phải dấu hai chấm sẽ ngăn tiêu đề đó xuất hiện.

cURL đảm bảo rằng mỗi tiêu đề bạn thêm / thay thế sẽ được gửi bằng điểm đánh dấu cuối dòng thích hợp. Bạn không nên thêm nó như một phần của nội dung tiêu đề hoặc thêm dòng mới hoặc ký tự xuống dòng để làm rối loạn mọi thứ.

Xem thêm các tùy chọn -A / - tác nhân người dùng và -e / - giới thiệu.

Tùy chọn này có thể được sử dụng nhiều lần để thêm / thay thế / loại bỏ nhiều tiêu đề.

-d cờ

Sử dụng cờ này của cURL, bạn có thể gửi dữ liệu cùng với yêu cầu HTTP POST tới máy chủ, như thể nó được người dùng điền vào biểu mẫu và gửi đi.

Example

Giả sử có một trang web và bạn muốn đăng nhập vào đó hoặc gửi một số dữ liệu đến trang web bằng cách sử dụng cờ –d của tiện ích cURL như hình dưới đây.

curl -X PUT http://mywebsite.com/login.html -d userid=001 -d password=tutorialspoint

Nó gửi một đoạn bài đăng trông giống như "userid=001&password=tutorialspoint". Tương tự như vậy, bạn cũng có thể gửi tài liệu (JSON) bằng cờ -d.

-o cờ

Sử dụng cờ này, cURL ghi đầu ra của yêu cầu vào một tệp.

Example

Ví dụ sau đây cho thấy việc sử dụng -o cờ của tiện ích cURL.

$ curl -o example.html www.tutorialspoint.com/index.htm 
% Total % Received % Xferd Average Speed Time Time Time Current 
      Dload Upload Total Spent Left Speed
100 81193 0 81193 0 0 48168 0 --:--:-- 0:00:01 --:--:--
58077

Điều này lấy mã nguồn của trang chủ của tutorialspoint.com, tạo một tệp có tên example.com và lưu đầu ra trong tệp có tên example.html.

Sau đây là ảnh chụp nhanh của example.html.

-O

Cờ này tương tự như –o, sự khác biệt duy nhất là với cờ này, một tệp mới có cùng tên với url được yêu cầu đã được tạo và mã nguồn của url được yêu cầu sẽ được sao chép vào nó.

Example

Ví dụ sau đây cho thấy việc sử dụng -O cờ của tiện ích cURL.

$ curl -O www.tutorialspoint.com/index.htm
% Total % Received % Xferd Average Speed Time Time Time Current
      Dload Upload Total Spent Left
Speed
100 81285 0 81285 0 0 49794 0 --:--:-- 0:00:01 --:--:--
60077

Nó tạo một tệp mới với tên index.htm và lưu mã nguồn của trang chỉ mục của tutorialspoint.com trong đó.

Xin chào CouchDB

Bạn có thể truy cập trang chủ của CouchDB bằng cách gửi yêu cầu GET tới phiên bản CouchDB đã cài đặt. Trước hết, hãy đảm bảo rằng bạn đã cài đặt CouchDB trong môi trường Linux của mình và nó đang chạy thành công, sau đó sử dụng cú pháp sau để gửi yêu cầu nhận đến phiên bản CouchDB.

curl http://127.0.0.1:5984/

Điều này cung cấp cho bạn một tài liệu JSON như được hiển thị bên dưới trong đó CouchDB chỉ định các chi tiết như số phiên bản, tên của nhà cung cấp và phiên bản của phần mềm.

$ curl http://127.0.0.1:5984/
{
   "couchdb" : "Welcome",
   "uuid" : "8f0d59acd0e179f5e9f0075fa1f5e804",
   "version" : "1.6.1",
   "vendor" : {
      "name":"The Apache Software Foundation",
      "version":"1.6.1"
   }
}

Danh sách tất cả cơ sở dữ liệu

Bạn có thể lấy danh sách tất cả các cơ sở dữ liệu đã tạo bằng cách gửi một yêu cầu nhận cùng với chuỗi "_all_dbs string ". Sau đây là cú pháp để lấy danh sách tất cả cơ sở dữ liệu trong CouchDB.

curl -X GET http://127.0.0.1:5984/_all_dbs

Nó cung cấp cho bạn danh sách tất cả các cơ sở dữ liệu trong CouchDB như hình dưới đây.

$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator" , "_users" ]

Tạo cơ sở dữ liệu

Bạn có thể tạo cơ sở dữ liệu trong CouchDB bằng cách sử dụng cURL với tiêu đề PUT bằng cú pháp sau:

$ curl -X PUT http://127.0.0.1:5984/database_name

Thí dụ

Ví dụ: sử dụng cú pháp đã cho ở trên tạo cơ sở dữ liệu với tên my_database như hình bên dưới.

$ curl -X PUT http://127.0.0.1:5984/my_database
{"ok":true}

xác minh

Xác minh xem cơ sở dữ liệu có được tạo hay không, bằng cách liệt kê tất cả các cơ sở dữ liệu như hình dưới đây. Tại đây bạn có thể quan sát tên của cơ sở dữ liệu mới được tạo,"my_database" trong danh sách

$ curl -X GET http://127.0.0.1:5984/_all_dbs

[ "_replicator " , "_users" , "my_database" ]

Nhận thông tin cơ sở dữ liệu

Bạn có thể lấy thông tin về cơ sở dữ liệu bằng cách sử dụng yêu cầu nhận cùng với tên cơ sở dữ liệu. Sau đây là cú pháp để lấy thông tin cơ sở dữ liệu.

Thí dụ

Ví dụ, chúng ta hãy lấy thông tin của cơ sở dữ liệu có tên my_databasenhư hình bên dưới. Tại đây, bạn có thể lấy thông tin về cơ sở dữ liệu của mình dưới dạng phản hồi.

$ curl -X GET http://127.0.0.1:5984/my_database

{
   "db_name" : "my_database",
   "doc_count" : 0,
   "doc_del_count" : 0,
   "update_seq" : 0,
   "purge_seq" : 0,
   "compact_running" : false,
   "disk_size" : 79,
   "data_size" : 0,
   "instance_start_time" : "1423628520835029",
   "disk_format_version" : 6,
   "committed_update_seq" : 0
 }

Futon

Futon là giao diện quản trị được tích hợp sẵn, dựa trên web của CouchDB. Nó cung cấp một giao diện đồ họa đơn giản mà bạn có thể tương tác với CouchDB. Đó là một giao diện ngây thơ và nó cung cấp quyền truy cập đầy đủ vào tất cả các tính năng của CouchDB. Sau đây là danh sách các tính năng đó -

Databases −
  • Tạo cơ sở dữ liệu.
  • Phá hủy cơ sở dữ liệu.
Documents −
  • Tạo tài liệu.
  • Cập nhật tài liệu.
  • Chỉnh sửa tài liệu.
  • Xóa tài liệu.

Bắt đầu Futon

Đảm bảo CouchDB đang chạy và sau đó mở url sau trong trình duyệt -

http://127.0.0.1:5984/_utils/

Nếu bạn mở url này, nó sẽ hiển thị trang chủ Futon như hình dưới đây -

  • Ở phía bên trái của trang này, bạn có thể quan sát danh sách tất cả các cơ sở dữ liệu hiện tại của CouchDB. Trong hình minh họa này, chúng tôi có một cơ sở dữ liệu có tênmy_database, cùng với cơ sở dữ liệu do hệ thống xác định _replicator_user.

  • Ở phía bên tay phải, bạn có thể thấy như sau:

    • Tools - Trong phần này, bạn có thể tìm thấy Configuration để định cấu hình CouchDB, Replicator để thực hiện các bản sao, và Status để xác minh trạng thái của CouchDB và các sửa đổi gần đây được thực hiện trên CouchDB.

    • Documentation - Phần này chứa tài liệu đầy đủ cho phiên bản CouchDB gần đây.

    • Diagnostics - Theo đó, bạn có thể xác minh việc cài đặt CouchDB.

    • Recent Databases - Dưới đây, bạn có thể tìm thấy tên của cơ sở dữ liệu được thêm gần đây.

Sử dụng tiêu đề yêu cầu HTTP, bạn có thể giao tiếp với CouchDB. Thông qua các yêu cầu này, chúng ta có thể truy xuất dữ liệu từ cơ sở dữ liệu, lưu trữ dữ liệu vào cơ sở dữ liệu dưới dạng tài liệu và chúng ta có thể xem cũng như định dạng các tài liệu được lưu trữ trong cơ sở dữ liệu.

Định dạng yêu cầu HTTP

Trong khi giao tiếp với cơ sở dữ liệu, chúng tôi sẽ sử dụng các định dạng yêu cầu khác nhau như get, head, post, put, delete và copy. Đối với tất cả các hoạt động trong CouchDB, dữ liệu đầu vào và cấu trúc dữ liệu đầu ra sẽ ở dạng đối tượng JavaScript Object Notation (JSON).

Sau đây là các định dạng yêu cầu khác nhau của Giao thức HTTP được sử dụng để giao tiếp với CouchDB.

  • GET- Định dạng này được sử dụng để lấy một mặt hàng cụ thể. Để nhận các mục khác nhau, bạn phải gửi các mẫu url cụ thể. Trong CouchDB sử dụng yêu cầu GET này, chúng ta có thể nhận được các mục tĩnh, tài liệu cơ sở dữ liệu và cấu hình cũng như thông tin thống kê ở dạng tài liệu JSON (trong hầu hết các trường hợp).

  • HEAD - Phương thức HEAD được sử dụng để lấy tiêu đề HTTP của một yêu cầu GET mà không có nội dung của phản hồi.

  • POST- Yêu cầu đăng được sử dụng để tải lên dữ liệu. Trong CouchDB sử dụng yêu cầu POST, bạn có thể đặt giá trị, tải lên tài liệu, đặt giá trị tài liệu và cũng có thể bắt đầu một số lệnh quản trị.

  • PUT - Sử dụng yêu cầu PUT, bạn có thể tạo các đối tượng, cơ sở dữ liệu, tài liệu, khung nhìn và tài liệu thiết kế mới.

  • DELETE - Sử dụng yêu cầu DELETE, bạn có thể xóa tài liệu, dạng xem và tài liệu thiết kế.

  • COPY - Sử dụng phương pháp COPY, bạn có thể sao chép tài liệu và đối tượng.

Tiêu đề yêu cầu HTTP

Tiêu đề HTTP phải được cung cấp để có định dạng và mã hóa phù hợp. Trong khi gửi yêu cầu đến máy chủ CouchDB, bạn có thể gửi tiêu đề yêu cầu Http cùng với yêu cầu. Sau đây là các tiêu đề yêu cầu Http khác nhau.

  • Content-type- Header này được sử dụng để chỉ định kiểu nội dung của dữ liệu mà chúng tôi cung cấp cho máy chủ cùng với yêu cầu. Chủ yếu loại nội dung chúng tôi gửi cùng với yêu cầu sẽ là loại MIME hoặc JSON (ứng dụng / json). Sử dụng Loại nội dung theo yêu cầu rất được khuyến khích.

  • Accept- Tiêu đề này được sử dụng để chỉ định máy chủ, danh sách các kiểu dữ liệu mà máy khách có thể hiểu được, để máy chủ sẽ gửi phản hồi của nó bằng cách sử dụng các kiểu dữ liệu đó. Nói chung ở đây, bạn có thể gửi danh sách các kiểu dữ liệu MIME mà máy khách chấp nhận, được phân tách bằng dấu hai chấm.

    Mặc dù, việc sử dụng Accept trong các truy vấn của CouchDB là không bắt buộc, bạn nên đảm bảo rằng dữ liệu trả về có thể được xử lý bởi máy khách.

Tiêu đề phản hồi

Đây là các tiêu đề của phản hồi được gửi bởi máy chủ. Các tiêu đề này cung cấp thông tin về nội dung do máy chủ gửi dưới dạng phản hồi.

  • Content-type- Tiêu đề này chỉ định kiểu MIME của dữ liệu được máy chủ trả về. Đối với hầu hết các yêu cầu, kiểu MIME trả về là văn bản / thuần túy.

  • Cache-control- Tiêu đề này gợi ý máy khách về việc xử lý thông tin do máy chủ gửi. CouchDB chủ yếu trả về giá trị phải xác thực lại, điều này cho biết rằng thông tin nên được xác thực lại nếu có thể.

  • Content-length - Tiêu đề này trả về độ dài của nội dung được gửi bởi máy chủ, tính bằng byte.

  • Etag - Tiêu đề này được sử dụng để hiển thị bản sửa đổi cho một tài liệu hoặc một dạng xem.

Mã trạng thái

Sau đây là dạng bảng của mã trạng thái được gửi bởi tiêu đề http và mô tả về nó.

Sr.No. Mã Trạng thái & Mô tả
1

200 − OK

Trạng thái này sẽ được đưa ra khi một yêu cầu hoàn tất thành công.

2

201 − Created

Trạng thái này sẽ được cấp khi một tài liệu được tạo.

3

202 − Accepted

Trạng thái này sẽ được cấp khi một yêu cầu được chấp nhận.

4

404 − Not Found

Trạng thái này sẽ được đưa ra khi máy chủ không thể tìm thấy nội dung được yêu cầu.

5

405 − Resource Not Allowed

Trạng thái này được đưa ra khi loại yêu cầu HTTP được sử dụng không hợp lệ.

6

409 − Conflict

Trạng thái này được đưa ra bất cứ khi nào có bất kỳ xung đột cập nhật nào.

7

415 − Bad Content Type

Trạng thái này chỉ ra rằng loại nội dung được yêu cầu không được máy chủ hỗ trợ.

số 8

500 − Internal Server Error

Trạng thái này được đưa ra bất cứ khi nào dữ liệu được gửi trong yêu cầu không hợp lệ.

Đường dẫn URL HTTP

Có một số đường dẫn url nhất định sử dụng, bạn có thể tương tác trực tiếp với cơ sở dữ liệu. Sau đây là định dạng bảng của các đường dẫn url như vậy.

Sr.No. URL & Hoạt động
1

PUT /db

Url này được sử dụng để tạo cơ sở dữ liệu mới.

2

GET /db

Url này được sử dụng để lấy thông tin về cơ sở dữ liệu hiện có.

3

PUT /db/document

Url này được sử dụng để tạo tài liệu / cập nhật tài liệu hiện có.

4

GET /db/document

Url này được sử dụng để lấy tài liệu.

5

DELETE /db/document

Url này được sử dụng để xóa tài liệu được chỉ định khỏi cơ sở dữ liệu được chỉ định.

6

GET /db/_design/design-doc

Url này được sử dụng để lấy định nghĩa của một tài liệu thiết kế.

7

GET /db/_design/designdoc/_view/view-name

Url này được sử dụng để truy cập dạng xem, tên dạng xem từ tài liệu thiết kế từ cơ sở dữ liệu được chỉ định.

Cơ sở dữ liệu là cấu trúc dữ liệu ngoài cùng trong CouchDB, nơi tài liệu của bạn được lưu trữ. Bạn có thể tạo các cơ sở dữ liệu này bằng cách sử dụng tiện ích cURL do CouchDB cung cấp, cũng như Futon trên giao diện web của CouchDB.

Tạo Cơ sở dữ liệu bằng Tiện ích cURL

Bạn có thể tạo cơ sở dữ liệu trong CouchDB bằng cách gửi một yêu cầu HTTP đến máy chủ bằng phương thức PUT thông qua tiện ích cURL. Sau đây là cú pháp để tạo một cơ sở dữ liệu:

$ curl -X PUT http://127.0.0.1:5984/database name

Sử dụng −Xchúng ta có thể chỉ định phương thức yêu cầu tùy chỉnh HTTP sẽ được sử dụng. Trong trường hợp này, chúng tôi đang sử dụng phương pháp PUT. Khi chúng tôi sử dụng thao tác / phương thức PUT, nội dung của url chỉ định tên đối tượng mà chúng tôi đang tạo bằng cách sử dụng yêu cầu HTTP. Ở đây chúng ta phải gửi tên của cơ sở dữ liệu bằng cách sử dụng yêu cầu đặt trong url để tạo cơ sở dữ liệu.

Thí dụ

Sử dụng cú pháp đã cho ở trên nếu bạn muốn tạo cơ sở dữ liệu với tên my_database, bạn có thể tạo nó như sau

curl -X PUT http://127.0.0.1:5984/my_database
{
   "ok":true
}

Như một phản hồi, máy chủ sẽ trả lại cho bạn một tài liệu JSON có nội dung “ok” - true cho biết hoạt động đã thành công.

xác minh

Xác minh xem cơ sở dữ liệu có được tạo hay không, bằng cách liệt kê tất cả các cơ sở dữ liệu như hình dưới đây. Tại đây bạn có thể quan sát tên của cơ sở dữ liệu mới được tạo," my_database " trong danh sách.

$ curl -X GET http://127.0.0.1:5984/_all_dbs

[ "_replicator " , " _users " , " my_database " ]

Tạo cơ sở dữ liệu bằng Futon

Để tạo cơ sở dữ liệu, hãy mở http://127.0.0.1:5984/_utils/. Bạn sẽ nhận được trang Tổng quan / chỉ mục của CouchDB như hình bên dưới.

Trong trang này, bạn có thể thấy danh sách các cơ sở dữ liệu trong CouchDB, một nút tùy chọn Tạo Cơ sở dữ liệu ở phía bên trái.

Bây giờ hãy nhấp vào liên kết tạo cơ sở dữ liệu. Bạn có thể thấy một cửa sổ bật lênCreate New Databasesyêu cầu tên cơ sở dữ liệu cho cơ sở dữ liệu mới. Chọn bất kỳ tên nào theo các tiêu chí đã đề cập. Ở đây chúng tôi đang tạo một cơ sở dữ liệu khác với tên tutorial_point. Nhấp vào nút tạo như thể hiện trong ảnh chụp màn hình sau.

Xóa Cơ sở dữ liệu bằng Tiện ích cURL

Bạn có thể xóa cơ sở dữ liệu trong CouchDB bằng cách gửi yêu cầu đến máy chủ bằng phương pháp DELETE thông qua tiện ích cURL. Sau đây là cú pháp để tạo một cơ sở dữ liệu:

$ curl -X DELETE http://127.0.0.1:5984/database name

Sử dụng −Xchúng tôi có thể chỉ định một phương thức yêu cầu tùy chỉnh của HTTP mà chúng tôi đang sử dụng, trong khi giao tiếp với máy chủ HTTP. Trong trường hợp này, chúng tôi đang sử dụng phương thức DELETE. Gửi url đến máy chủ bằng cách chỉ định cơ sở dữ liệu sẽ bị xóa trong đó.

Thí dụ

Giả sử có một cơ sở dữ liệu có tên my_database2 trong CouchDB. Sử dụng cú pháp đã cho ở trên nếu bạn muốn xóa nó, bạn có thể thực hiện như sau:

$ curl -X DELETE http://127.0.0.1:5984/my_database2
{
   "ok" : true
}

Như một phản hồi, máy chủ sẽ trả về cho bạn một tài liệu JSON có nội dung “ok” - true cho biết hoạt động đã thành công.

xác minh

Xác minh xem cơ sở dữ liệu có bị xóa hay không bằng cách liệt kê tất cả các cơ sở dữ liệu như hình dưới đây. Tại đây bạn có thể quan sát tên của cơ sở dữ liệu đã xóa,"my_database" không có trong danh sách.

$ curl -X GET http://127.0.0.1:5984/_all_dbs

[ "_replicator " , " _users " ]

Xóa cơ sở dữ liệu bằng Futon

Để xóa cơ sở dữ liệu, hãy mở http://127.0.0.1:5984/_utils/ url nơi bạn sẽ nhận được trang Tổng quan / chỉ mục của CouchDB như hình dưới đây.

Ở đây bạn có thể thấy ba cơ sở dữ liệu do người dùng tạo. Hãy để chúng tôi xóa cơ sở dữ liệu có tên tutorial_point2. Để xóa cơ sở dữ liệu, hãy chọn một cơ sở dữ liệu từ danh sách cơ sở dữ liệu và nhấp vào nó, điều này sẽ dẫn đến trang tổng quan của cơ sở dữ liệu đã chọn, nơi bạn có thể xem các thao tác khác nhau trên cơ sở dữ liệu. Ảnh chụp màn hình sau đây cho thấy giống như vậy -

Trong số đó bạn có thể tìm thấy Delete DatabaseLựa chọn. Bằng cách nhấp vào nó, bạn sẽ nhận được một cửa sổ bật lên, hỏi bạn có chắc chắn không! Nhấp vào xóa, để xóa cơ sở dữ liệu đã chọn.

Tài liệu là cấu trúc dữ liệu trung tâm của CouchDB. Nội dung của cơ sở dữ liệu sẽ được lưu trữ dưới dạng Tài liệu thay vì bảng. Bạn có thể tạo các tài liệu này bằng tiện ích cURL do CouchDB, cũng như Futon cung cấp. Chương này trình bày các cách tạo tài liệu trong cơ sở dữ liệu.

Mỗi tài liệu trong CouchDB có một ID duy nhất. Bạn có thể chọn ID của riêng mình ở dạng một chuỗi. Nói chung, UUID (Mã định danh duy nhất phổ biến) được sử dụng, là các số ngẫu nhiên có ít cơ hội tạo trùng lặp nhất. Những thứ này được ưu tiên để tránh va chạm.

Tạo tài liệu bằng cURL Utility

Bạn có thể tạo một tài liệu trong CouchDB bằng cách gửi một yêu cầu HTTP đến máy chủ bằng phương thức PUT thông qua tiện ích cURL. Sau đây là cú pháp để tạo một tài liệu.

$ curl -X PUT http://127.0.0.1:5984/database name/"id" -d ' { document} '

Sử dụng −X, chúng tôi có thể chỉ định phương thức yêu cầu tùy chỉnh của HTTP mà chúng tôi đang sử dụng trong khi giao tiếp với máy chủ HTTP. Trong trường hợp này, chúng tôi đang sử dụng phương pháp PUT. Khi chúng tôi sử dụng phương thức PUT, nội dung của url chỉ định tên đối tượng mà chúng tôi đang tạo bằng cách sử dụng yêu cầu HTTP. Ở đây chúng tôi phải gửi những thứ sau -

  • Tên của tên cơ sở dữ liệu mà chúng tôi đang tạo tài liệu.

  • Id tài liệu.

  • Dữ liệu của tài liệu. −dtùy chọn được sử dụng để gửi dữ liệu / tài liệu thông qua yêu cầu HTTP. Trong khi viết tài liệu, chỉ cần nhập các cặp Trường-Giá trị của bạn được phân tách bằng dấu hai chấm, trong dấu ngoặc hoa như hình dưới đây -

{
   Name : Raju
   age : 23
   Designation : Designer
}

Thí dụ

Sử dụng cú pháp đã cho ở trên nếu bạn muốn tạo tài liệu với id 001 trong cơ sở dữ liệu có tên my_database, bạn có thể tạo nó như hình dưới đây.

$ curl -X PUT http://127.0.0.1:5984/my_database/"001" -d
'{ " Name " : " Raju " , " age " :" 23 " , " Designation " : " Designer " }'

{"ok":true,"id":"001","rev":"1-1c2fae390fa5475d9b809301bbf3f25e"}

Phản hồi của CouchDB đối với yêu cầu này chứa ba trường:

  • "ok", cho biết hoạt động đã thành công.

  • "id", nơi lưu trữ id của tài liệu và

  • "rev",điều này cho biết id bản sửa đổi. Mỗi khi bạn sửa đổi (cập nhật hoặc sửa đổi) một tài liệu_revgiá trị sẽ được tạo bởi CouchDB. Nếu bạn muốn cập nhật hoặc xóa một tài liệu, CouchDB mong bạn bao gồm_revtrường của bản sửa đổi mà bạn muốn thay đổi. Khi CouchDB chấp nhận thay đổi, nó sẽ tạo ra một số sửa đổi mới. Cơ chế này đảm bảo kiểm soát đồng thời.

xác minh

Nếu bạn muốn xem tài liệu đã tạo, bạn có thể lấy nó bằng cách sử dụng tài liệu như hình dưới đây.

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   "_id": "001",
   "_rev": "1-3fcc78daac7a90803f0a5e383f4f1e1e",
   "Name": "Raju",
   "age": 23,
   "Designation": "Designer"
}

Tạo tài liệu bằng Futon

Để tạo tài liệu, hãy mở http://127.0.0.1:5984/_utils/ url để lấy trang Tổng quan / chỉ mục của CouchDB như hình dưới đây.

Chọn cơ sở dữ liệu mà bạn muốn tạo tài liệu. Mở trang Tổng quan của cơ sở dữ liệu và chọnNew Document tùy chọn như hình dưới đây.

Khi bạn chọn New Documenttùy chọn, CouchDB tạo một tài liệu cơ sở dữ liệu mới, gán cho nó một id mới. Bạn có thể chỉnh sửa giá trị của id và có thể gán giá trị của riêng mình dưới dạng một chuỗi. Trong hình minh họa sau, chúng tôi đã tạo một tài liệu mới với id 001.

Trong trang này, bạn có thể quan sát ba tùy chọn - lưu Tài liệu, Thêm Trường và Tải lên Tệp đính kèm.

Thêm trường vào tài liệu

Để thêm trường vào tài liệu, hãy nhấp vào Add FieldLựa chọn. Sau khi tạo cơ sở dữ liệu, bạn có thể thêm một trường vào nó bằng cách sử dụng tùy chọn này. Nhấp vào nó sẽ giúp bạn có một cặp hộp văn bản, cụ thể làField, value.Bạn có thể chỉnh sửa các giá trị này bằng cách nhấp vào chúng. Chỉnh sửa các giá trị đó và nhập cặp Trường-Giá trị mong muốn của bạn. Nhấp vào nút màu xanh lá cây để lưu các giá trị này.

Trong hình minh họa sau, chúng tôi đã tạo ba trường Tên, tuổi và Chức vụ của nhân viên.

Lưu tài liệu

Bạn có thể lưu các thay đổi được thực hiện đối với tài liệu bằng cách nhấp vào tùy chọn này. Sau khi lưu, một id mới_rev sẽ được tạo như hình dưới đây.

Cập nhật tài liệu bằng cURL

Bạn có thể cập nhật tài liệu trong CouchDB bằng cách gửi yêu cầu HTTP đến máy chủ bằng phương thức PUT thông qua tiện ích cURL. Sau đây là cú pháp để cập nhật một tài liệu.

curl -X PUT http://127.0.0.1:5984/database_name/document_id/ -d '{ "field" : "value", "_rev" : "revision id" }'

Thí dụ

Giả sử có một tài liệu có id 001 trong cơ sở dữ liệu có tên my_database. Bạn có thể xóa nó như hình dưới đây.

Trước hết, lấy id sửa đổi của tài liệu sẽ được cập nhật. Bạn có thể tìm thấy_rev của tài liệu trong chính tài liệu, do đó lấy tài liệu như hình dưới đây.

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   "_id" : "001",
   "_rev" : "2-04d8eac1680d237ca25b68b36b8899d3 " ,
   "age" : "23"
}

Sử dụng id sửa đổi _rev từ tài liệu để cập nhật tài liệu. Ở đây chúng tôi đang cập nhật độ tuổi từ 23 đến 24.

$ curl -X PUT http://127.0.0.1:5984/my_database/001/ -d
' { " age " : " 24 " , " _rev " : " 1-1c2fae390fa5475d9b809301bbf3f25e " } '

{ " ok " : true , " id " : " 001 " , " rev " : " 2-04d8eac1680d237ca25b68b36b8899d3 " }

xác minh

Để xác minh tài liệu, hãy lấy lại tài liệu bằng yêu cầu GET như hình dưới đây.

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   " _id " : " 001 ",
   " _rev " : " 2-04d8eac1680d237ca25b68b36b8899d3 " ,
   " age " : " 23 "
 }
Note

Sau đây là một số điểm quan trọng cần lưu ý khi cập nhật tài liệu.

  • URL chúng tôi gửi trong yêu cầu chứa tên cơ sở dữ liệu và id tài liệu.

  • Cập nhật tài liệu hiện có cũng giống như cập nhật toàn bộ tài liệu. Bạn không thể thêm trường vào tài liệu hiện có. Bạn chỉ có thể ghi một phiên bản hoàn toàn mới của tài liệu vào cơ sở dữ liệu với cùng một ID tài liệu.

  • Chúng tôi phải cung cấp số sửa đổi như một phần của yêu cầu JSON.

  • Đổi lại JSON chứa thông báo thành công, ID của tài liệu đang được cập nhật và thông tin sửa đổi mới. Nếu bạn muốn cập nhật phiên bản mới của tài liệu, bạn phải trích dẫn số sửa đổi mới nhất này.

Cập nhật tài liệu bằng Futon

Để xóa một tài liệu, hãy mở http://127.0.0.1:5984/_utils/ url để lấy trang Tổng quan / chỉ mục của CouchDB như hình dưới đây.

Chọn cơ sở dữ liệu mà tài liệu được cập nhật tồn tại và nhấp vào nó. Ở đây chúng tôi đang cập nhật một tài liệu trong cơ sở dữ liệu có têntutorials_point. Bạn sẽ nhận được danh sách các tài liệu trong cơ sở dữ liệu như hình dưới đây.

Chọn một tài liệu mà bạn muốn cập nhật và nhấp vào nó. Bạn sẽ nhận được nội dung của các tài liệu như hình dưới đây.

Tại đây, để cập nhật vị trí từ Delhi đến Hyderabad, hãy nhấp vào hộp văn bản, chỉnh sửa trường và nhấp vào nút màu xanh lá cây để lưu thay đổi như hình dưới đây.

Xóa tài liệu bằng cURL Utility

Bạn có thể xóa một tài liệu trong CouchDB bằng cách gửi một yêu cầu HTTP đến máy chủ bằng phương thức DELETE thông qua tiện ích cURL. Sau đây là cú pháp để xóa một tài liệu.

curl -X DELETE http : // 127.0.0.1:5984 / database name/database id?_rev id

Sử dụng −X,chúng tôi có thể chỉ định phương thức yêu cầu tùy chỉnh của HTTP mà chúng tôi đang sử dụng trong khi giao tiếp với máy chủ HTTP. Trong trường hợp này, chúng tôi đang sử dụng phương pháp Xóa. Để xóa một cơ sở dữ liệu /database_name/database_id/là không đủ. Bạn phải chuyển id bản sửa đổi gần đây qua url. Đề cập đến các thuộc tính của bất kỳ cấu trúc dữ liệu nào"?" Được sử dụng.

Thí dụ

Giả sử có một tài liệu trong cơ sở dữ liệu có tên my_databasevới id tài liệu 001. Để xóa tài liệu này, bạn phải lấy id phiên bản của tài liệu. Lấy dữ liệu tài liệu như hình bên dưới.

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   " _id " : " 001 ",
   " _rev " : " 2-04d8eac1680d237ca25b68b36b8899d3 " ,
   " age " : " 23 "
}

Bây giờ chỉ định id sửa đổi của tài liệu sẽ bị xóa, id của tài liệu và tên cơ sở dữ liệu mà tài liệu thuộc về, như được hiển thị bên dưới -

$ curl -X DELETE http://127.0.0.1:5984/my_database/001?rev=1-
3fcc78daac7a90803f0a5e383f4f1e1e

{"ok":true,"id":"001","rev":"2-3a561d56de1ce3305d693bd15630bf96"}

xác minh

Để xác minh xem tài liệu có bị xóa hay không, hãy thử tìm nạp tài liệu bằng cách sử dụng GETphương pháp. Vì bạn đang tìm nạp một tài liệu đã xóa, điều này sẽ cung cấp cho bạn một thông báo lỗi như hình dưới đây:

$ curl -X GET http://127.0.0.1:5984/my_database/001
{"error":"not_found","reason":"deleted"}

Xóa tài liệu bằng Futon

Trước hết, hãy xác minh các tài liệu trong cơ sở dữ liệu. Sau đây là ảnh chụp nhanh của cơ sở dữ liệu có têntutorials_point.

Ở đây bạn có thể quan sát, cơ sở dữ liệu bao gồm ba tài liệu. Để xóa bất kỳ tài liệu nào, hãy nói003, làm như sau -

  • Nhấp vào tài liệu, bạn sẽ nhận được một trang hiển thị nội dung của tài liệu đã chọn dưới dạng các cặp giá trị trường.

  • Trang này cũng chứa bốn tùy chọn cụ thể là Save Document, Add Field, Upload Attachment, Delete Document.

  • Bấm vào Delete Document Lựa chọn.

  • Bạn sẽ nhận được một hộp thoại nói rằng "Are you sure you want to delete this document?" Bấm vào xóa, để xóa tài liệu.

Đính kèm tệp bằng cURL

Bạn có thể đính kèm tệp vào CouchDB giống như email. Tệp chứa siêu dữ liệu như tên và bao gồm kiểu MIME của nó và số byte mà tệp đính kèm chứa. Để đính kèm tệp vào tài liệu, bạn phải gửi yêu cầu PUT đến máy chủ. Sau đây là cú pháp để đính kèm tệp vào tài liệu:

$ curl -vX PUT http://127.0.0.1:5984/database_name/database_id
/filename?rev=document rev_id --data-binary @filename -H "Content-Type:
type of the content"

Yêu cầu có các tùy chọn khác nhau được giải thích bên dưới.

  • --data-binary@ - Tùy chọn này yêu cầu cURL đọc nội dung của tệp vào phần thân yêu cầu HTTP.

  • -H - Tùy chọn này được sử dụng để đề cập đến loại nội dung của tệp mà chúng tôi sẽ tải lên.

Thí dụ

Hãy để chúng tôi đính kèm một tệp có tên boy.jpg, vào tài liệu có id 001, trong cơ sở dữ liệu có tên my_databasebằng cách gửi yêu cầu PUT đến CouchDB. Trước đó, bạn phải tìm nạp dữ liệu của tài liệu với id001 để có được hiện tại của nó rev id như hình dưới đây.

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   "_id": "001",
   "_rev": "1-967a00dff5e02add41819138abb3284d"
}

Bây giờ sử dụng _rev giá trị, gửi yêu cầu PUT đến máy chủ CouchDB như hình dưới đây.

$ curl -vX PUT http://127.0.0.1:5984/my_database/001/boy.jpg?rev=1-
967a00dff5e02add41819138abb3284d --data-binary @boy.jpg -H "ContentType:
image/jpg"

xác minh

Để xác minh xem tệp đính kèm có được tải lên hay không, hãy tìm nạp nội dung tài liệu như hình dưới đây−

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   "_id": "001",
   "_rev": "2-4705a219cdcca7c72aac4f623f5c46a8",
   "_attachments": {
      "boy.jpg": {
         "content_type": "image/jpg",
         "revpos": 2,
         "digest": "md5-9Swz8jvmga5mfBIsmCxCtQ==",
         "length": 91408,
         "stub": true
      }
   }
}

Đính kèm tệp bằng Futon

tải tập tin đính kèm

Sử dụng tùy chọn này, bạn có thể tải một phần đính kèm mới như tệp, hình ảnh hoặc tài liệu lên cơ sở dữ liệu. Để làm như vậy, hãy nhấp vàoUpload Attachmentcái nút. Một hộp thoại sẽ xuất hiện để bạn có thể chọn tệp được tải lên. Chọn tệp và nhấp vàoUpload cái nút.

Tệp đã tải lên sẽ được hiển thị trong trường _attachments. Sau đó, bạn có thể xem tệp bằng cách nhấp vào nó.