CouchDB - คู่มือฉบับย่อ
ระบบจัดการฐานข้อมูลมีกลไกในการจัดเก็บและเรียกค้นข้อมูล ระบบจัดการฐานข้อมูลมีสามประเภทหลัก ได้แก่ RDBMS (Relational Database management Systems), OLAP (Online Analytical Processing Systems) และ NoSQL
RDBMS
RDBMS ย่อมาจาก Relational Database Management System RDBMS เป็นพื้นฐานสำหรับ SQL และสำหรับระบบฐานข้อมูลสมัยใหม่ทั้งหมดเช่น MS SQL Server, IBM DB2, Oracle, MySQL และ Microsoft Access
ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) คือระบบการจัดการฐานข้อมูล (DBMS) ที่ยึดตามแบบจำลองเชิงสัมพันธ์ตามที่ EF Codd แนะนำ
ข้อมูลใน RDBMS ถูกเก็บไว้ในวัตถุฐานข้อมูลที่เรียกว่า tables. ตารางคือชุดของรายการข้อมูลที่เกี่ยวข้องและประกอบด้วยคอลัมน์และแถว จัดเก็บเฉพาะข้อมูลที่มีโครงสร้างเท่านั้น
OLAP
Online Analytical Processing Server (OLAP) ขึ้นอยู่กับแบบจำลองข้อมูลหลายมิติ ช่วยให้ผู้จัดการและนักวิเคราะห์ได้รับข้อมูลเชิงลึกผ่านการเข้าถึงข้อมูลที่รวดเร็วสม่ำเสมอและโต้ตอบได้
ฐานข้อมูล NoSQL
ฐานข้อมูล NoSQL (บางครั้งเรียกว่า Not Only SQL) เป็นฐานข้อมูลที่มีกลไกในการจัดเก็บและดึงข้อมูลนอกเหนือจากความสัมพันธ์แบบตารางที่ใช้ในฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูลเหล่านี้ไม่มีสคีมารองรับการจำลองแบบง่ายมี API ที่เรียบง่ายสอดคล้องกันในที่สุดและสามารถจัดการข้อมูลจำนวนมหาศาล (ข้อมูลขนาดใหญ่) ได้
วัตถุประสงค์หลักของฐานข้อมูล NoSQL มีดังต่อไปนี้ -
- ความเรียบง่ายของการออกแบบ
- มาตราส่วนแนวนอนและ
- ควบคุมความพร้อมใช้งานได้ละเอียดขึ้น
ฐานข้อมูล NoSQL ใช้โครงสร้างข้อมูลที่แตกต่างกันเมื่อเทียบกับฐานข้อมูลเชิงสัมพันธ์ ทำให้การทำงานบางอย่างเร็วขึ้นใน NoSQL ความเหมาะสมของฐานข้อมูล NoSQL ที่กำหนดขึ้นอยู่กับปัญหาที่ต้องแก้ไข ฐานข้อมูลเหล่านี้จัดเก็บทั้งข้อมูลที่มีโครงสร้างและข้อมูลที่ไม่มีโครงสร้างเช่นไฟล์เสียงไฟล์วิดีโอเอกสาร ฯลฯ ฐานข้อมูล NoSQL เหล่านี้แบ่งออกเป็นสามประเภทและมีการอธิบายไว้ด้านล่าง
Key-value Store- ฐานข้อมูลเหล่านี้ออกแบบมาเพื่อจัดเก็บข้อมูลในคู่คีย์ - ค่าและฐานข้อมูลเหล่านี้จะไม่มีสคีมา ในฐานข้อมูลเหล่านี้ค่าข้อมูลแต่ละค่าประกอบด้วยคีย์ที่จัดทำดัชนีและค่าสำหรับคีย์นั้น
ตัวอย่าง - BerkeleyDB, Cassandra, DynamoDB, Riak
Column Store- ในฐานข้อมูลเหล่านี้ข้อมูลจะถูกเก็บไว้ในเซลล์ที่จัดกลุ่มไว้ในคอลัมน์ของข้อมูลและคอลัมน์เหล่านี้จะถูกจัดกลุ่มเป็นตระกูลคอลัมน์เพิ่มเติม กลุ่มคอลัมน์เหล่านี้สามารถมีคอลัมน์กี่คอลัมน์ก็ได้
ตัวอย่าง - BigTable, HBase และ HyperTable
Document Store- นี่คือฐานข้อมูลที่พัฒนาขึ้นจากแนวคิดพื้นฐานของการจัดเก็บคีย์ - ค่าที่ "เอกสาร" มีข้อมูลที่ซับซ้อนมากขึ้น ที่นี่เอกสารแต่ละชุดจะมีการกำหนดคีย์ที่ไม่ซ้ำกันซึ่งใช้ในการดึงเอกสาร สิ่งเหล่านี้ได้รับการออกแบบมาเพื่อการจัดเก็บการเรียกค้นและการจัดการข้อมูลเชิงเอกสารหรือที่เรียกว่าข้อมูลกึ่งโครงสร้าง
ตัวอย่าง - CouchDB และ MongoDB
CouchDB คืออะไร?
CouchDB เป็นฐานข้อมูลโอเพ่นซอร์สที่พัฒนาโดยมูลนิธิซอฟต์แวร์ Apache เน้นที่ความสะดวกในการใช้งานเว็บ เป็นฐานข้อมูลที่เก็บเอกสาร NoSQL
ใช้ JSON ในการจัดเก็บข้อมูล (เอกสาร) สคริปต์ java เป็นภาษาสืบค้นเพื่อแปลงเอกสารโปรโตคอล http สำหรับ api เพื่อเข้าถึงเอกสารค้นหาดัชนีด้วยเว็บเบราว์เซอร์ เป็นแอปพลิเคชั่น multi master ที่เปิดตัวในปี 2548 และกลายเป็นโปรเจ็กต์ apache ในปี 2008
ทำไมต้อง CouchDB?
CouchDB มี REST API ที่ใช้ HTTP ซึ่งช่วยให้สื่อสารกับฐานข้อมูลได้อย่างง่ายดาย และโครงสร้างที่เรียบง่ายของทรัพยากรและวิธีการ HTTP (GET, PUT, DELETE) นั้นง่ายต่อการเข้าใจและใช้งาน
ในขณะที่เราจัดเก็บข้อมูลในโครงสร้างเอกสารที่ยืดหยุ่นจึงไม่จำเป็นต้องกังวลเกี่ยวกับโครงสร้างของข้อมูล
ผู้ใช้จะได้รับการแมปข้อมูลที่มีประสิทธิภาพซึ่งช่วยให้สามารถสืบค้นรวมและกรองข้อมูลได้
CouchDB ให้การจำลองแบบที่ใช้งานง่ายซึ่งคุณสามารถคัดลอกแชร์และซิงโครไนซ์ข้อมูลระหว่างฐานข้อมูลและเครื่อง
แบบจำลองข้อมูล
ฐานข้อมูลเป็นโครงสร้าง / คอนเทนเนอร์ข้อมูลนอกสุดใน CouchDB
ฐานข้อมูลแต่ละชุดเป็นชุดเอกสารอิสระ
เอกสารแต่ละฉบับจะเก็บรักษาข้อมูลของตนเองและสคีมาในตัว
ข้อมูลเมตาของเอกสารมีข้อมูลการแก้ไขซึ่งทำให้สามารถผสานความแตกต่างที่เกิดขึ้นในขณะที่ฐานข้อมูลถูกตัดการเชื่อมต่อ
CouchDB ดำเนินการควบคุมการทำงานพร้อมกันหลายเวอร์ชันเพื่อหลีกเลี่ยงความจำเป็นในการล็อกฟิลด์ฐานข้อมูลระหว่างการเขียน
คุณสมบัติของ CouchDB: ลดเนื้อหา
การจัดเก็บเอกสาร
CouchDB คือฐานข้อมูล NoSQL ที่จัดเก็บเอกสาร ให้ความสะดวกในการจัดเก็บเอกสารที่มีชื่อเฉพาะและยังมี API ที่เรียกว่า RESTful HTTP API สำหรับการอ่านและอัปเดต (เพิ่มแก้ไขลบ) เอกสารฐานข้อมูล
ใน CouchDB เอกสารเป็นหน่วยหลักของข้อมูลและรวมถึงข้อมูลเมตาด้วย ฟิลด์เอกสารได้รับการตั้งชื่อโดยไม่ซ้ำกันและมีค่าของประเภทต่างๆ (ข้อความตัวเลขบูลีนรายการ ฯลฯ ) และไม่มีการกำหนดขนาดข้อความหรือจำนวนองค์ประกอบ
การอัปเดตเอกสาร (เพิ่มแก้ไขลบ) เป็นไปตาม Atomicity กล่าวคือจะถูกบันทึกอย่างสมบูรณ์หรือไม่บันทึกเลย ฐานข้อมูลจะไม่มีเอกสารที่บันทึกหรือแก้ไขบางส่วน
โครงสร้างเอกสาร Json
{
"field" : "value",
"field" : "value",
"field" : "value",
}
คุณสมบัติของกรด
CouchDB มีคุณสมบัติ ACID เป็นหนึ่งในคุณสมบัติ
ความสม่ำเสมอ - เมื่อข้อมูลใน CouchDB ถูกคอมมิตแล้วข้อมูลนี้จะไม่ถูกแก้ไขหรือเขียนทับ ดังนั้น CouchDB จึงมั่นใจได้ว่าไฟล์ฐานข้อมูลจะอยู่ในสถานะที่สอดคล้องกันเสมอ
CouchDB ใช้แบบจำลอง Multi-Version Concurrency Control (MVCC) เนื่องจากไคลเอ็นต์จะเห็นสแนปชอตที่สอดคล้องกันของฐานข้อมูลตั้งแต่ต้นจนจบการดำเนินการอ่าน
เมื่อใดก็ตามที่เอกสารได้รับการอัปเดต CouchDB จะล้างข้อมูลลงในดิสก์และส่วนหัวของฐานข้อมูลที่อัปเดตจะถูกเขียนเป็นสองส่วนติดต่อกันและเหมือนกันเพื่อสร้างเป็น 4k แรกของไฟล์จากนั้นล้างข้อมูลไปยังดิสก์แบบซิงโครนัส การอัปเดตบางส่วนในระหว่างการล้างจะถูกยกเลิก
หากความล้มเหลวเกิดขึ้นขณะส่งส่วนหัวสำเนาที่ยังมีชีวิตอยู่ของส่วนหัวที่เหมือนกันก่อนหน้านี้จะยังคงอยู่เพื่อให้มั่นใจว่าข้อมูลที่ผูกมัดก่อนหน้านี้ทั้งหมดจะเชื่อมโยงกัน ยกเว้นบริเวณส่วนหัวการตรวจสอบความสอดคล้องหรือการแก้ไขหลังจากเกิดเหตุขัดข้องหรือไฟฟ้าดับไม่จำเป็น
การบดอัด
เมื่อใดก็ตามที่พื้นที่ในไฟล์ฐานข้อมูลสูญเปล่าเกินระดับที่กำหนดข้อมูลที่ใช้งานอยู่ทั้งหมดจะถูกคัดลอก (โคลน) ไปยังไฟล์ใหม่ เมื่อกระบวนการคัดลอกเสร็จสิ้นทั้งหมดไฟล์เก่าจะถูกทิ้ง ทั้งหมดนี้ทำได้โดยกระบวนการบดอัด ฐานข้อมูลยังคงออนไลน์อยู่ในระหว่างการบีบอัดและการอัปเดตและการอ่านทั้งหมดได้รับอนุญาตให้ดำเนินการให้เสร็จสมบูรณ์
มุมมอง
ข้อมูลใน CouchDB ถูกจัดเก็บในเอกสารกึ่งโครงสร้างที่มีความยืดหยุ่นตามโครงสร้างโดยนัยของแต่ละบุคคล แต่เป็นรูปแบบเอกสารที่เรียบง่ายสำหรับการจัดเก็บและแบ่งปันข้อมูล หากเราต้องการดูข้อมูลของเราในรูปแบบต่างๆเราจำเป็นต้องมีวิธีกรองจัดระเบียบและรายงานข้อมูลที่ยังไม่ถูกย่อยสลายเป็นตาราง
เพื่อแก้ปัญหานี้ CouchDB จัดเตรียมโมเดลมุมมอง มุมมองเป็นวิธีการรวบรวมและรายงานเกี่ยวกับเอกสารในฐานข้อมูลและสร้างขึ้นตามความต้องการเพื่อรวมเข้าร่วมและรายงานเกี่ยวกับเอกสารฐานข้อมูล เนื่องจากมุมมองถูกสร้างขึ้นแบบไดนามิกและไม่ส่งผลกระทบต่อเอกสารที่อยู่ข้างใต้คุณจึงสามารถนำเสนอมุมมองที่แตกต่างกันของข้อมูลเดียวกันได้มากเท่าที่คุณต้องการ
ประวัติศาสตร์
- CouchDB เขียนด้วยภาษาโปรแกรม Erlang
- เริ่มต้นโดย Damien Katz ในปี 2548
- CouchDB กลายเป็นโครงการ Apache ในปี 2551
CouchDB เวอร์ชันปัจจุบันคือ 1.61
บทนี้จะสอนวิธีการติดตั้ง CouchDB ใน Windows และระบบ Linux
การติดตั้ง CouchDB ใน Windows
ดาวน์โหลด CouchDB
เว็บไซต์อย่างเป็นทางการของ CouchDB คือ https://couchdb.apache.org. หากคุณคลิกลิงก์ที่ระบุคุณจะได้รับโฮมเพจของเว็บไซต์ทางการของ CouchDB ดังที่แสดงด้านล่าง
หากคุณคลิกที่ปุ่มดาวน์โหลดที่จะนำไปสู่หน้าที่มีลิงค์ดาวน์โหลดของ CouchDB ในรูปแบบต่างๆ ภาพรวมต่อไปนี้แสดงให้เห็นเช่นเดียวกัน
เลือกลิงค์ดาวน์โหลดสำหรับระบบ windows และเลือกหนึ่งในมิเรอร์ที่มีให้เพื่อเริ่มการดาวน์โหลดของคุณ
การติดตั้ง CouchDB
CouchDB จะถูกดาวน์โหลดลงในระบบของคุณในรูปแบบของไฟล์ติดตั้งชื่อ setup-couchdb-1.6.1_R16B02.exe. เรียกใช้ไฟล์ติดตั้งและดำเนินการติดตั้ง
หลังจากติดตั้งแล้วให้เปิดเว็บอินเตอร์เฟสในตัวของ CouchDB โดยไปที่สิ่งต่อไปนี้ link: http://127.0.0.1:5984/. หากทุกอย่างเรียบร้อยดีจะมีหน้าเว็บซึ่งมีผลลัพธ์ดังต่อไปนี้
{
"couchdb":"Welcome","uuid":"c8d48ac61bb497f4692b346e0f400d60",
"version":"1.6.1",
"vendor":{
"version":"1.6.1","name":"The Apache Software Foundation"
}
}
คุณสามารถโต้ตอบกับเว็บอินเตอร์เฟส CouchDB ได้โดยใช้ url ต่อไปนี้ -
http://127.0.0.1:5984/_utils/
นี่จะแสดงหน้าดัชนีของ Futon ซึ่งเป็นเว็บอินเตอร์เฟสของ CouchDB
การติดตั้ง CouchDB ในระบบ Linux
สำหรับระบบปรุงแต่ง Linux จำนวนมากจะมี CouchDB ไว้ภายใน ในการติดตั้ง CouchDB นี้ให้ทำตามคำแนะนำ
บน Ubuntu และ Debian คุณสามารถใช้ -
sudo aptitude install couchdb
บน Gentoo Linux มี CouchDB ebuild พร้อมใช้งาน -
sudo emerge couchdb
หากระบบ Linux ของคุณไม่มี CouchDB ให้ทำตามหัวข้อถัดไปเพื่อติดตั้ง CouchDB และการอ้างอิง
การติดตั้ง CouchDB Dependencies
ต่อไปนี้คือรายการการอ้างอิงที่จะติดตั้งเพื่อรับ CouchDB ในระบบของคุณ
- เออร์ลังสนข
- ICU
- OpenSSL
- Mozilla SpiderMonkey
- GNU ทำ
- คอลเลกชันคอมไพเลอร์ GNU
- libcurl
- help2man
- Python สำหรับเอกสาร
- งูหลามสฟิงซ์
ในการติดตั้งการอ้างอิงเหล่านี้ให้พิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล ที่นี่เรากำลังใช้ Centos 6.5 และคำสั่งต่อไปนี้จะติดตั้งโปรแกรมที่จำเป็นซึ่งเข้ากันได้กับ 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 −สำหรับคำสั่งทั้งหมดนี้คุณต้องใช้ sudo ขั้นตอนต่อไปนี้จะแปลงผู้ใช้ปกติเป็น sudoer
เข้าสู่ระบบด้วย root ในผู้ใช้ admin
เปิด sudo ไฟล์โดยใช้คำสั่งต่อไปนี้ -
visudo
- จากนั้นแก้ไขตามที่แสดงด้านล่างเพื่อให้สิทธิ์แก่ผู้ใช้ที่มีอยู่ของคุณ -
Hadoop All=(All) All , and press esc : x to write the changes to the file.
หลังจากดาวน์โหลดการอ้างอิงทั้งหมดในระบบของคุณแล้วให้ดาวน์โหลด CouchDB ตามคำแนะนำที่กำหนด
กำลังดาวน์โหลด CouchDB
พื้นฐานซอฟต์แวร์ Apache จะไม่ให้ไฟล์. tar ที่สมบูรณ์สำหรับ CouchDB ดังนั้นคุณต้องติดตั้งจากแหล่งที่มา
สร้างไดเร็กทอรีใหม่เพื่อติดตั้ง CouchDB เรียกดูไดเร็กทอรีที่สร้างขึ้นและดาวน์โหลดซอร์ส CouchDB โดยดำเนินการคำสั่งต่อไปนี้ -
$ 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
สิ่งนี้จะดาวน์โหลดไฟล์ต้นฉบับ CouchDB ลงในระบบของคุณ ตอนนี้เปิดเครื่องรูดไฟล์apache-couchdb-1.6.1.tar.gz ดังแสดงด้านล่าง
$ tar zxvf apache-couchdb-1.6.1.tar.gz
การกำหนดค่า CouchDB
ในการกำหนดค่า CouchDB ให้ทำดังต่อไปนี้ -
- เรียกดูโฮมโฟลเดอร์ของ CouchDB
- เข้าสู่ระบบด้วย superuser
- กำหนดค่าโดยใช้. / กำหนดค่าพร้อมต์ดังที่แสดงด้านล่าง -
$ cd apache-couchdb-1.6.1
$ su
Password:
# ./configure --with-erlang=/usr/lib64/erlang/usr/include/
มันให้ผลลัพธ์ต่อไปนี้คล้ายกับที่แสดงด้านล่างโดยมีบรรทัดสรุปว่า - 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.
การติดตั้ง CouchDB
ตอนนี้พิมพ์คำสั่งต่อไปนี้เพื่อติดตั้ง CouchDB ในระบบของคุณ
# make && sudo make install
ติดตั้ง CouchDB ในระบบของคุณโดยมีบรรทัดสรุปว่า - You have installed Apache CouchDB, time to relax.
เริ่มต้น CouchDB
ในการเริ่มต้น CouchDB ให้เรียกดูโฟลเดอร์หลักของ CouchDB และใช้คำสั่งต่อไปนี้ -
$ cd apache-couchdb-1.6.1
$ cd etc
$ couchdb start
เริ่มต้น CouchDB โดยให้ผลลัพธ์ต่อไปนี้: -
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
การยืนยัน
เนื่องจาก CouchDB เป็นเว็บอินเตอร์เฟสให้ลองพิมพ์ URL ของหน้าแรกต่อไปนี้ในเบราว์เซอร์
http://127.0.0.1:5984/
สร้างผลลัพธ์ต่อไปนี้ -
{
"couchdb":"Welcome",
"uuid":"8f0d59acd0e179f5e9f0075fa1f5e804",
"version":"1.6.1",
"vendor":{
"name":"The Apache Software Foundation",
"version":"1.6.1"
}
}
ยูทิลิตี้ cURL
ยูทิลิตี้ cURL เป็นวิธีสื่อสารกับ CouchDB
เป็นเครื่องมือในการถ่ายโอนข้อมูลจากหรือไปยังเซิร์ฟเวอร์โดยใช้หนึ่งในโปรโตคอลที่สนับสนุน (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP หรือ FILE) คำสั่งนี้ออกแบบมาให้ทำงานโดยไม่ต้องโต้ตอบกับผู้ใช้ cURL นำเสนอบัสโหลดของเทคนิคที่เป็นประโยชน์เช่นการสนับสนุนพร็อกซีการตรวจสอบผู้ใช้การอัปโหลด ftp โพสต์ HTTP การเชื่อมต่อ SSL (https :) คุกกี้ประวัติย่อการโอนไฟล์และอื่น ๆ
ยูทิลิตี้ cURL มีอยู่ในระบบปฏิบัติการเช่น UNIX, Linux, Mac OS X และ Windows เป็นยูทิลิตี้บรรทัดคำสั่งที่ผู้ใช้สามารถเข้าถึงโปรโตคอล HTTP ได้ทันทีจากบรรทัดคำสั่ง บทนี้สอนวิธีใช้ยูทิลิตี้ cURL
การใช้ cURL Utility
คุณสามารถเข้าถึงเว็บไซต์ใดก็ได้โดยใช้ยูทิลิตี้ cURL เพียงแค่พิมพ์ cURL ตามด้วยที่อยู่เว็บไซต์ดังที่แสดงด้านล่าง -
curl www.tutorialspoint.com/
ตามค่าเริ่มต้นยูทิลิตี้ cURL จะส่งคืนซอร์สโค้ดของหน้าที่ร้องขอ จะแสดงรหัสนี้บนหน้าต่างเทอร์มินัล
ตัวเลือกยูทิลิตี้ cURL
ยูทิลิตี้ cURL มีตัวเลือกต่างๆให้ใช้งานและคุณสามารถดูได้ในวิธีใช้ยูทิลิตี้ cURL
รหัสต่อไปนี้แสดงความช่วยเหลือบางส่วนของ 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
ในขณะที่สื่อสารกับ CouchDB ตัวเลือกบางอย่างของยูทิลิตี้ cURL ถูกนำมาใช้อย่างกว้างขวาง ต่อไปนี้เป็นคำอธิบายสั้น ๆ เกี่ยวกับตัวเลือกที่สำคัญบางอย่างของยูทิลิตี้ cURL รวมถึงตัวเลือกที่ CouchDB ใช้
-X ธง
(HTTP) ระบุวิธีการร้องขอแบบกำหนดเองที่ใช้เมื่อสื่อสารกับเซิร์ฟเวอร์ HTTP คำขอที่ระบุถูกใช้แทนวิธีที่ใช้เป็นอย่างอื่น (ซึ่งมีค่าเริ่มต้นเป็น GET) อ่านข้อกำหนด HTTP 1.1 สำหรับรายละเอียดและคำอธิบาย
(FTP) ระบุคำสั่ง FTP ที่กำหนดเองเพื่อใช้แทน LIST เมื่อทำรายการไฟล์ด้วย ftp
- ฮ
(HTTP) ใช้ส่วนหัวพิเศษเมื่อรับหน้าเว็บ โปรดทราบว่าหากคุณเพิ่มส่วนหัวแบบกำหนดเองที่มีชื่อเดียวกับหนึ่งในส่วนหัวภายในที่ cURL จะใช้ส่วนหัวที่ตั้งค่าภายนอกของคุณจะถูกใช้แทนส่วนหัวภายใน สิ่งนี้ช่วยให้คุณทำงานได้ยากกว่าที่ cURL ทำตามปกติ คุณไม่ควรเปลี่ยนส่วนหัวที่ตั้งไว้ภายในโดยไม่ทราบว่าคุณกำลังทำอะไรอยู่ การแทนที่ส่วนหัวภายในด้วยส่วนที่ไม่มีเนื้อหาทางด้านขวาของลำไส้ใหญ่จะป้องกันไม่ให้ส่วนหัวนั้นปรากฏขึ้น
cURL รับรองว่าแต่ละส่วนหัวที่คุณเพิ่ม / แทนที่จะถูกส่งไปพร้อมกับเครื่องหมายสิ้นสุดบรรทัดที่เหมาะสม คุณไม่ควรเพิ่มสิ่งนั้นเป็นส่วนหนึ่งของเนื้อหาส่วนหัวหรือเพิ่มขึ้นบรรทัดใหม่หรือการขนส่งกลับไปสู่สิ่งที่ผิดปกติ
โปรดดูที่อ็อพชัน -A / - user-agent และ -e / - referer
ตัวเลือกนี้สามารถใช้ได้หลายครั้งเพื่อเพิ่ม / แทนที่ / ลบส่วนหัวหลาย ๆ
-d ธง
เมื่อใช้แฟล็กของ cURL นี้คุณสามารถส่งข้อมูลพร้อมกับคำร้องขอ HTTP POST ไปยังเซิร์ฟเวอร์ได้ราวกับว่าผู้ใช้กรอกข้อมูลในแบบฟอร์มและส่ง
Example
สมมติว่ามีเว็บไซต์และคุณต้องการเข้าสู่ระบบหรือส่งข้อมูลบางส่วนไปยังเว็บไซต์โดยใช้แฟล็ก –d ของยูทิลิตี้ cURL ดังที่แสดงด้านล่าง
curl -X PUT http://mywebsite.com/login.html -d userid=001 -d password=tutorialspoint
จะส่งโพสต์ชิ้นส่วนที่ดูเหมือน "userid=001&password=tutorialspoint". ในทำนองเดียวกันคุณยังสามารถส่งเอกสาร (JSON) โดยใช้แฟล็ก -d
- ธง
การใช้แฟล็กนี้ cURL เขียนเอาต์พุตของคำร้องขอไปยังไฟล์
Example
ตัวอย่างต่อไปนี้แสดงการใช้ -o ธงของยูทิลิตี้ 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
รับซอร์สโค้ดของโฮมเพจของ tutorialspoint.com สร้างไฟล์ชื่อ example.com และบันทึกเอาต์พุตในไฟล์ชื่อ example.html
ต่อไปนี้เป็นภาพรวมของไฟล์ example.html.
-O
ธงนี้คล้ายกับ –oความแตกต่างเพียงอย่างเดียวคือแฟล็กนี้ไฟล์ใหม่ที่มีชื่อเดียวกับ URL ที่ร้องขอถูกสร้างขึ้นและซอร์สโค้ดของ url ที่ร้องขอจะถูกคัดลอกไป
Example
ตัวอย่างต่อไปนี้แสดงการใช้ -O ธงของยูทิลิตี้ 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
จะสร้างไฟล์ใหม่ที่มีชื่อ index.htm และบันทึกซอร์สโค้ดของหน้าดัชนีของ tutorialspoint.com ไว้ในนั้น
สวัสดี CouchDB
คุณสามารถเข้าถึงโฮมเพจของ CouchDB ได้โดยส่งคำขอ GET ไปยังอินสแตนซ์ CouchDB ที่ติดตั้ง ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง CouchDB ในสภาพแวดล้อม Linux ของคุณและทำงานได้สำเร็จจากนั้นใช้ไวยากรณ์ต่อไปนี้เพื่อส่งคำขอรับไปยังอินสแตนซ์ CouchDB
curl http://127.0.0.1:5984/
เอกสารนี้ให้เอกสาร JSON ตามที่แสดงด้านล่างโดยที่ CouchDB ระบุรายละเอียดต่างๆเช่นหมายเลขเวอร์ชันชื่อผู้จำหน่ายและเวอร์ชันของซอฟต์แวร์
$ 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"
}
}
รายชื่อฐานข้อมูลทั้งหมด
คุณสามารถรับรายชื่อฐานข้อมูลทั้งหมดที่สร้างขึ้นโดยการส่งคำขอรับพร้อมกับสตริง "_all_dbs string ". ต่อไปนี้เป็นไวยากรณ์เพื่อรับรายการฐานข้อมูลทั้งหมดใน CouchDB
curl -X GET http://127.0.0.1:5984/_all_dbs
จะให้รายชื่อฐานข้อมูลทั้งหมดใน CouchDB ดังที่แสดงด้านล่าง
$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator" , "_users" ]
การสร้างฐานข้อมูล
คุณสามารถสร้างฐานข้อมูลใน CouchDB โดยใช้ cURL พร้อม PUT header โดยใช้ไวยากรณ์ต่อไปนี้ -
$ curl -X PUT http://127.0.0.1:5984/database_name
ตัวอย่าง
ตัวอย่างเช่นการใช้ไวยากรณ์ที่ระบุข้างต้นสร้างฐานข้อมูลที่มีชื่อ my_database ดังแสดงด้านล่าง
$ curl -X PUT http://127.0.0.1:5984/my_database
{"ok":true}
การยืนยัน
ตรวจสอบว่าฐานข้อมูลถูกสร้างขึ้นหรือไม่โดยแสดงรายการฐานข้อมูลทั้งหมดดังที่แสดงด้านล่าง ที่นี่คุณสามารถสังเกตชื่อของฐานข้อมูลที่สร้างขึ้นใหม่"my_database" ในรายการ
$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator " , "_users" , "my_database" ]
รับข้อมูลฐานข้อมูล
คุณสามารถรับข้อมูลเกี่ยวกับฐานข้อมูลโดยใช้ get request พร้อมกับชื่อฐานข้อมูล ต่อไปนี้เป็นไวยากรณ์เพื่อรับข้อมูลฐานข้อมูล
ตัวอย่าง
ตัวอย่างเช่นให้เราได้รับข้อมูลของฐานข้อมูลที่ชื่อ my_databaseดังแสดงด้านล่าง ที่นี่คุณสามารถรับข้อมูลเกี่ยวกับฐานข้อมูลของคุณเป็นการตอบกลับ
$ 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 เป็นอินเทอร์เฟซการดูแลระบบในตัวบนเว็บของ CouchDB มีอินเทอร์เฟซแบบกราฟิกที่เรียบง่ายซึ่งคุณสามารถโต้ตอบกับ CouchDB ได้ เป็นอินเทอร์เฟซที่ไร้เดียงสาและให้การเข้าถึงคุณสมบัติ CouchDB ทั้งหมดอย่างเต็มที่ ต่อไปนี้เป็นรายการคุณสมบัติเหล่านั้น -
Databases −- สร้างฐานข้อมูล
- ทำลายฐานข้อมูล
- สร้างเอกสาร
- อัปเดตเอกสาร
- แก้ไขเอกสาร
- ลบเอกสาร
เริ่มต้น Futon
ตรวจสอบให้แน่ใจว่า CouchDB กำลังทำงานจากนั้นเปิด url ต่อไปนี้ในเบราว์เซอร์ -
http://127.0.0.1:5984/_utils/
หากคุณเปิด url นี้จะแสดงโฮมเพจ Futon ดังที่แสดงด้านล่าง -
ที่ด้านซ้ายมือของหน้านี้คุณสามารถสังเกตรายการฐานข้อมูลปัจจุบันทั้งหมดของ CouchDB ในภาพประกอบนี้เรามีฐานข้อมูลชื่อmy_databaseพร้อมกับฐานข้อมูลที่ระบบกำหนด _replicator และ _user.
ทางด้านขวามือคุณจะเห็นสิ่งต่อไปนี้ -
Tools - ในส่วนนี้คุณจะพบ Configuration เพื่อกำหนดค่า CouchDB Replicator เพื่อทำการจำลองแบบและ Status เพื่อตรวจสอบสถานะของ CouchDB และการแก้ไขล่าสุดที่ทำบน CouchDB
Documentation - ส่วนนี้ประกอบด้วยเอกสารฉบับสมบูรณ์สำหรับ CouchDB เวอร์ชันล่าสุด
Diagnostics - ภายใต้สิ่งนี้คุณสามารถตรวจสอบการติดตั้ง CouchDB ได้
Recent Databases - ภายใต้สิ่งนี้คุณสามารถค้นหาชื่อของฐานข้อมูลที่เพิ่งเพิ่ม
การใช้ส่วนหัวคำขอ HTTP คุณสามารถสื่อสารกับ CouchDB ด้วยการร้องขอเหล่านี้เราสามารถดึงข้อมูลจากฐานข้อมูลจัดเก็บข้อมูลในฐานข้อมูลในรูปแบบของเอกสารและเราสามารถดูและจัดรูปแบบเอกสารที่จัดเก็บในฐานข้อมูลได้
รูปแบบคำขอ HTTP
ในขณะที่สื่อสารกับฐานข้อมูลเราจะใช้รูปแบบคำขอที่แตกต่างกันเช่น get, head, post, put, delete และ copy สำหรับการดำเนินการทั้งหมดใน CouchDB ข้อมูลอินพุตและโครงสร้างข้อมูลเอาต์พุตจะอยู่ในรูปแบบของวัตถุ JavaScript Object Notation (JSON)
ต่อไปนี้เป็นรูปแบบคำขอต่างๆของ HTTP Protocol ที่ใช้สื่อสารกับ CouchDB
GET- รูปแบบนี้ใช้เพื่อรับไอเทมเฉพาะ หากต้องการรับรายการต่างๆคุณต้องส่งรูปแบบ URL ที่เฉพาะเจาะจง ใน CouchDB โดยใช้คำขอ GET นี้เราสามารถรับรายการคงที่เอกสารฐานข้อมูลและการกำหนดค่าและข้อมูลทางสถิติในรูปแบบของเอกสาร JSON (โดยส่วนใหญ่)
HEAD - เมธอด HEAD ใช้เพื่อรับส่วนหัว HTTP ของคำขอ GET โดยไม่มีเนื้อหาของการตอบสนอง
POST- คำขอโพสต์ใช้ในการอัปโหลดข้อมูล ใน CouchDB โดยใช้คำขอ POST คุณสามารถตั้งค่าอัปโหลดเอกสารตั้งค่าเอกสารและยังสามารถเริ่มคำสั่งการดูแลระบบบางคำสั่งได้
PUT - ใช้คำขอ PUT คุณสามารถสร้างวัตถุฐานข้อมูลเอกสารมุมมองและเอกสารการออกแบบใหม่ได้
DELETE - ใช้คำขอ DELETE คุณสามารถลบเอกสารมุมมองและเอกสารการออกแบบ
COPY - ใช้วิธีการ COPY คุณสามารถคัดลอกเอกสารและวัตถุต่างๆ
ส่วนหัวคำขอ HTTP
ควรระบุส่วนหัว HTTP เพื่อให้ได้รูปแบบและการเข้ารหัสที่ถูกต้อง ในขณะที่ส่งคำขอไปยังเซิร์ฟเวอร์ CouchDB คุณสามารถส่งส่วนหัวของคำขอ Http พร้อมกับคำขอได้ ต่อไปนี้เป็นส่วนหัวของคำขอ Http ที่แตกต่างกัน
Content-type- ส่วนหัวนี้ใช้เพื่อระบุประเภทเนื้อหาของข้อมูลที่เราจัดหาให้กับเซิร์ฟเวอร์พร้อมกับคำขอ ส่วนใหญ่ประเภทของเนื้อหาที่เราส่งไปพร้อมกับคำขอจะเป็นประเภท MIME หรือ JSON (application / json) ขอแนะนำให้ใช้ Content-type ตามคำขอ
Accept- ส่วนหัวนี้ใช้เพื่อระบุเซิร์ฟเวอร์รายการประเภทข้อมูลที่ไคลเอ็นต์สามารถเข้าใจได้เพื่อให้เซิร์ฟเวอร์ส่งการตอบกลับโดยใช้ชนิดข้อมูลเหล่านั้น โดยทั่วไปที่นี่คุณสามารถส่งรายการประเภทข้อมูล MIME ที่ไคลเอนต์ยอมรับโดยคั่นด้วยเครื่องหมายทวิภาค
แม้ว่าจะไม่จำเป็นต้องใช้ Accept ในแบบสอบถามของ CouchDB แต่ขอแนะนำอย่างยิ่งเพื่อให้แน่ใจว่าลูกค้าสามารถประมวลผลข้อมูลที่ส่งคืนได้
ส่วนหัวการตอบกลับ
นี่คือส่วนหัวของการตอบกลับที่เซิร์ฟเวอร์ส่งมา ส่วนหัวเหล่านี้ให้ข้อมูลเกี่ยวกับเนื้อหาที่เซิร์ฟเวอร์ส่งเป็นการตอบกลับ
Content-type- ส่วนหัวนี้ระบุประเภท MIME ของข้อมูลที่เซิร์ฟเวอร์ส่งคืน สำหรับคำขอส่วนใหญ่ประเภท MIME ที่ส่งคืนเป็นข้อความ / ธรรมดา
Cache-control- ส่วนหัวนี้จะแนะนำลูกค้าเกี่ยวกับการปฏิบัติต่อข้อมูลที่เซิร์ฟเวอร์ส่งมา CouchDB ส่วนใหญ่จะส่งคืนข้อมูลที่ต้องตรวจสอบใหม่ซึ่งบ่งชี้ว่าข้อมูลควรได้รับการตรวจสอบใหม่หากเป็นไปได้
Content-length - ส่วนหัวนี้ส่งกลับความยาวของเนื้อหาที่เซิร์ฟเวอร์ส่งเป็นไบต์
Etag - ส่วนหัวนี้ใช้เพื่อแสดงการแก้ไขสำหรับเอกสารหรือมุมมอง
รหัสสถานะ
ต่อไปนี้เป็นรูปแบบตารางของรหัสสถานะที่ส่งโดยส่วนหัว http และคำอธิบายของรหัส
ซีเนียร์ | รหัสสถานะและคำอธิบาย |
---|---|
1 | 200 − OK สถานะนี้จะออกเมื่อคำขอเสร็จสมบูรณ์ |
2 | 201 − Created สถานะนี้จะออกเมื่อสร้างเอกสาร |
3 | 202 − Accepted สถานะนี้จะออกเมื่อคำขอได้รับการยอมรับ |
4 | 404 − Not Found สถานะนี้จะออกเมื่อเซิร์ฟเวอร์ไม่พบเนื้อหาที่ร้องขอ |
5 | 405 − Resource Not Allowed สถานะนี้จะออกเมื่อประเภทคำขอ HTTP ที่ใช้ไม่ถูกต้อง |
6 | 409 − Conflict สถานะนี้จะออกเมื่อใดก็ตามที่มีข้อขัดแย้งในการอัปเดต |
7 | 415 − Bad Content Type สถานะนี้ระบุว่าเซิร์ฟเวอร์ไม่รองรับประเภทเนื้อหาที่ร้องขอ |
8 | 500 − Internal Server Error สถานะนี้จะออกเมื่อใดก็ตามที่ข้อมูลที่ส่งในคำขอไม่ถูกต้อง |
เส้นทาง URL ของ HTTP
มีเส้นทาง URL บางอย่างที่ใช้ซึ่งคุณสามารถโต้ตอบกับฐานข้อมูลได้โดยตรง ต่อไปนี้เป็นรูปแบบตารางของเส้นทาง url ดังกล่าว
ซีเนียร์ | URL และการทำงาน |
---|---|
1 | PUT /db url นี้ใช้เพื่อสร้างฐานข้อมูลใหม่ |
2 | GET /db url นี้ใช้เพื่อรับข้อมูลเกี่ยวกับฐานข้อมูลที่มีอยู่ |
3 | PUT /db/document url นี้ใช้เพื่อสร้างเอกสาร / อัปเดตเอกสารที่มีอยู่ |
4 | GET /db/document url นี้ใช้เพื่อรับเอกสาร |
5 | DELETE /db/document url นี้ใช้เพื่อลบเอกสารที่ระบุออกจากฐานข้อมูลที่ระบุ |
6 | GET /db/_design/design-doc URL นี้ใช้เพื่อรับความหมายของเอกสารการออกแบบ |
7 | GET /db/_design/designdoc/_view/view-name url นี้ใช้เพื่อเข้าถึงมุมมองชื่อมุมมองจากเอกสารการออกแบบจากฐานข้อมูลที่ระบุ |
ฐานข้อมูลเป็นโครงสร้างข้อมูลชั้นนอกสุดใน CouchDB ที่จัดเก็บเอกสารของคุณ คุณสามารถสร้างฐานข้อมูลเหล่านี้โดยใช้ยูทิลิตี้ cURL ที่จัดทำโดย CouchDB ตลอดจน Futon เว็บอินเตอร์เฟสของ CouchDB
การสร้างฐานข้อมูลโดยใช้ยูทิลิตี้ cURL
คุณสามารถสร้างฐานข้อมูลใน CouchDB ได้โดยส่งคำร้องขอ HTTP ไปยังเซิร์ฟเวอร์โดยใช้เมธอด PUT ผ่านยูทิลิตี้ cURL ต่อไปนี้เป็นไวยากรณ์ในการสร้างฐานข้อมูล -
$ curl -X PUT http://127.0.0.1:5984/database name
การใช้ −Xเราสามารถระบุวิธีการร้องขอที่กำหนดเองของ HTTP ที่จะใช้ ในกรณีนี้เราใช้วิธี PUT เมื่อเราใช้การดำเนินการ / วิธีการ PUT เนื้อหาของ url จะระบุชื่ออ็อบเจ็กต์ที่เรากำลังสร้างโดยใช้คำร้องขอ HTTP ที่นี่เราต้องส่งชื่อฐานข้อมูลโดยใช้ put request ใน url เพื่อสร้างฐานข้อมูล
ตัวอย่าง
การใช้ไวยากรณ์ที่กำหนดข้างต้นหากคุณต้องการสร้างฐานข้อมูลด้วยชื่อ my_databaseคุณสามารถสร้างได้ดังนี้
curl -X PUT http://127.0.0.1:5984/my_database
{
"ok":true
}
ตามการตอบกลับเซิร์ฟเวอร์จะส่งคืนเอกสาร JSON พร้อมเนื้อหาให้คุณ “ok” - true แสดงว่าการดำเนินการสำเร็จ
การยืนยัน
ตรวจสอบว่าฐานข้อมูลถูกสร้างขึ้นหรือไม่โดยแสดงรายการฐานข้อมูลทั้งหมดดังที่แสดงด้านล่าง ที่นี่คุณสามารถสังเกตชื่อของฐานข้อมูลที่สร้างขึ้นใหม่" my_database " ในรายการ
$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator " , " _users " , " my_database " ]
การสร้างฐานข้อมูลโดยใช้ Futon
ในการสร้างฐานข้อมูลให้เปิดไฟล์ http://127.0.0.1:5984/_utils/. คุณจะได้รับหน้าภาพรวม / ดัชนีของ CouchDB ดังที่แสดงด้านล่าง
ในหน้านี้คุณจะเห็นรายการฐานข้อมูลใน CouchDB ปุ่มตัวเลือกสร้างฐานข้อมูลทางด้านซ้ายมือ
ตอนนี้คลิกที่ลิงค์สร้างฐานข้อมูล คุณจะเห็นหน้าต่างป๊อปอัปCreate New Databasesขอชื่อฐานข้อมูลสำหรับฐานข้อมูลใหม่ เลือกชื่อใด ๆ ตามเกณฑ์ที่กล่าวถึง ที่นี่เรากำลังสร้างฐานข้อมูลอื่นด้วยชื่อ tutorials_point คลิกที่ปุ่มสร้างดังที่แสดงในภาพหน้าจอต่อไปนี้
การลบฐานข้อมูลโดยใช้ cURL Utility
คุณสามารถลบฐานข้อมูลใน CouchDB ได้โดยส่งคำร้องขอไปยังเซิร์ฟเวอร์โดยใช้เมธอด DELETE ผ่านยูทิลิตี้ cURL ต่อไปนี้เป็นไวยากรณ์ในการสร้างฐานข้อมูล -
$ curl -X DELETE http://127.0.0.1:5984/database name
การใช้ −Xเราสามารถระบุวิธีการร้องขอที่กำหนดเองของ HTTP ที่เราใช้ในขณะที่สื่อสารกับเซิร์ฟเวอร์ HTTP ในกรณีนี้เรากำลังใช้เมธอด DELETE ส่ง url ไปยังเซิร์ฟเวอร์โดยระบุฐานข้อมูลที่จะลบในนั้น
ตัวอย่าง
สมมติว่ามีฐานข้อมูลชื่อ my_database2 ใน CouchDB ใช้ไวยากรณ์ที่ระบุข้างต้นหากคุณต้องการลบคุณสามารถทำได้ดังนี้ -
$ curl -X DELETE http://127.0.0.1:5984/my_database2
{
"ok" : true
}
ตามการตอบกลับเซิร์ฟเวอร์จะส่งคืนเอกสาร JSON พร้อมเนื้อหาให้คุณ “ok” - true แสดงว่าการดำเนินการสำเร็จ
การยืนยัน
ตรวจสอบว่าฐานข้อมูลถูกลบหรือไม่โดยแสดงรายการฐานข้อมูลทั้งหมดตามที่แสดงด้านล่าง ที่นี่คุณสามารถสังเกตชื่อของฐานข้อมูลที่ถูกลบ"my_database" ไม่มีในรายการ
$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator " , " _users " ]
การลบฐานข้อมูลโดยใช้ Futon
ในการลบฐานข้อมูลให้เปิดไฟล์ http://127.0.0.1:5984/_utils/ url ที่คุณจะได้รับหน้าภาพรวม / ดัชนีของ CouchDB ดังที่แสดงด้านล่าง
ที่นี่คุณสามารถดูฐานข้อมูลที่ผู้ใช้สร้างขึ้นสามฐานข้อมูล ให้เราลบฐานข้อมูลชื่อ tutorials_point2 ในการลบฐานข้อมูลให้เลือกจากรายการฐานข้อมูลและคลิกที่ฐานข้อมูลซึ่งจะนำไปสู่หน้าภาพรวมของฐานข้อมูลที่เลือกซึ่งคุณสามารถดูการดำเนินการต่างๆบนฐานข้อมูลได้ ภาพหน้าจอต่อไปนี้แสดงเหมือนกัน -
ในหมู่พวกเขาคุณสามารถพบ Delete Databaseตัวเลือก เมื่อคลิกแล้วคุณจะได้หน้าต่างป๊อปอัปถามว่าแน่ใจหรือไม่! คลิกที่ลบเพื่อลบฐานข้อมูลที่เลือก
เอกสารคือโครงสร้างข้อมูลกลางของ CouchDB เนื้อหาของฐานข้อมูลจะถูกจัดเก็บในรูปแบบของเอกสารแทนตาราง คุณสามารถสร้างเอกสารเหล่านี้โดยใช้ยูทิลิตี้ cURL ที่จัดทำโดย CouchDB เช่นเดียวกับ Futon บทนี้ครอบคลุมถึงวิธีการสร้างเอกสารในฐานข้อมูล
เอกสารแต่ละฉบับใน CouchDB มี ID เฉพาะ คุณสามารถเลือก ID ของคุณเองที่ควรอยู่ในรูปแบบของสตริง โดยทั่วไปจะใช้ UUID (Universally Unique IDentifier) ซึ่งเป็นตัวเลขสุ่มที่มีโอกาสสร้างซ้ำน้อยที่สุด สิ่งเหล่านี้เป็นที่ต้องการเพื่อหลีกเลี่ยงการชนกัน
การสร้างเอกสารโดยใช้ยูทิลิตี้ cURL
คุณสามารถสร้างเอกสารใน CouchDB โดยส่งคำร้องขอ HTTP ไปยังเซิร์ฟเวอร์โดยใช้วิธี PUT ผ่านยูทิลิตี้ cURL ต่อไปนี้เป็นไวยากรณ์ในการสร้างเอกสาร
$ curl -X PUT http://127.0.0.1:5984/database name/"id" -d ' { document} '
การใช้ −Xเราสามารถระบุวิธีการร้องขอที่กำหนดเองของ HTTP ที่เราใช้ในขณะที่สื่อสารกับเซิร์ฟเวอร์ HTTP ในกรณีนี้เราใช้วิธี PUT เมื่อเราใช้เมธอด PUT เนื้อหาของ url จะระบุชื่ออ็อบเจ็กต์ที่เรากำลังสร้างโดยใช้คำร้องขอ HTTP ที่นี่เราต้องส่งสิ่งต่อไปนี้ -
ชื่อของชื่อฐานข้อมูลที่เรากำลังสร้างเอกสาร
รหัสเอกสาร
ข้อมูลของเอกสาร −dตัวเลือกนี้ใช้เพื่อส่งข้อมูล / เอกสารผ่านคำขอ HTTP ในขณะที่เขียนเอกสารให้ป้อนคู่ค่าฟิลด์ของคุณโดยคั่นด้วยเครื่องหมายจุดคู่ภายในวงเล็บดอกไม้ดังที่แสดงด้านล่าง -
{
Name : Raju
age : 23
Designation : Designer
}
ตัวอย่าง
ใช้ไวยากรณ์ที่กำหนดข้างต้นหากคุณต้องการสร้างเอกสารที่มี id 001 ในฐานข้อมูลที่มีชื่อ my_databaseคุณสามารถสร้างได้ตามที่แสดงด้านล่าง
$ 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"}
การตอบสนองของ CouchDB ต่อคำขอนี้มีสามฟิลด์ -
"ok", แสดงว่าการดำเนินการสำเร็จ
"id", ซึ่งเก็บรหัสของเอกสารและ
"rev",สิ่งนี้บ่งชี้รหัสการแก้ไข ทุกครั้งที่คุณแก้ไข (ปรับปรุงหรือแก้ไข) เอกสารก_revค่าจะถูกสร้างขึ้นโดย CouchDB หากคุณต้องการอัปเดตหรือลบเอกสาร CouchDB คาดว่าคุณจะรวมไฟล์_revฟิลด์ของการแก้ไขที่คุณต้องการเปลี่ยนแปลง เมื่อ CouchDB ยอมรับการเปลี่ยนแปลงก็จะสร้างหมายเลขการแก้ไขใหม่ กลไกนี้ช่วยให้มั่นใจได้ถึงการควบคุมภาวะพร้อมกัน
การยืนยัน
หากคุณต้องการดูเอกสารที่สร้างขึ้นคุณสามารถรับได้โดยใช้เอกสารดังที่แสดงด้านล่าง
$ curl -X GET http://127.0.0.1:5984/my_database/001
{
"_id": "001",
"_rev": "1-3fcc78daac7a90803f0a5e383f4f1e1e",
"Name": "Raju",
"age": 23,
"Designation": "Designer"
}
การสร้างเอกสารโดยใช้ Futon
ในการสร้างเอกสารให้เปิดไฟล์ http://127.0.0.1:5984/_utils/ url เพื่อรับหน้าภาพรวม / ดัชนีของ CouchDB ดังที่แสดงด้านล่าง
เลือกฐานข้อมูลที่คุณต้องการสร้างเอกสาร เปิดหน้าภาพรวมของฐานข้อมูลและเลือกNew Document ตามที่แสดงด้านล่าง
เมื่อคุณเลือกไฟล์ New Documentตัวเลือก CouchDB สร้างเอกสารฐานข้อมูลใหม่กำหนดรหัสใหม่ คุณสามารถแก้ไขค่าของ id และสามารถกำหนดค่าของคุณเองในรูปแบบของสตริง ในภาพประกอบต่อไปนี้เราได้สร้างเอกสารใหม่ด้วยรหัส 001
ในหน้านี้คุณสามารถสังเกตได้สามตัวเลือก - บันทึกเอกสารเพิ่มฟิลด์และอัปโหลดไฟล์แนบ
เพิ่มฟิลด์ลงในเอกสาร
หากต้องการเพิ่มฟิลด์ลงในเอกสารให้คลิกที่ Add Fieldตัวเลือก หลังจากสร้างฐานข้อมูลคุณสามารถเพิ่มเขตข้อมูลโดยใช้ตัวเลือกนี้ คลิกที่มันคุณจะได้รับกล่องข้อความคู่หนึ่งคือField, value.คุณสามารถแก้ไขค่าเหล่านี้ได้โดยคลิกที่ค่าเหล่านี้ แก้ไขค่าเหล่านั้นและพิมพ์คู่ Field-Value ที่คุณต้องการ คลิกที่ปุ่มสีเขียวเพื่อบันทึกค่าเหล่านี้
ในภาพประกอบต่อไปนี้เราได้สร้างฟิลด์สามฟิลด์ชื่ออายุและการกำหนดของพนักงาน
บันทึกเอกสาร
คุณสามารถบันทึกการเปลี่ยนแปลงที่ทำกับเอกสารได้โดยคลิกที่ตัวเลือกนี้ หลังจากบันทึกรหัสใหม่_rev จะถูกสร้างขึ้นตามที่แสดงด้านล่าง
การอัปเดตเอกสารโดยใช้ cURL
คุณสามารถอัพเดตเอกสารใน CouchDB ได้โดยการส่งคำร้องขอ HTTP ไปยังเซิร์ฟเวอร์โดยใช้วิธี PUT ผ่านยูทิลิตี้ cURL ต่อไปนี้เป็นไวยากรณ์สำหรับอัปเดตเอกสาร
curl -X PUT http://127.0.0.1:5984/database_name/document_id/ -d '{ "field" : "value", "_rev" : "revision id" }'
ตัวอย่าง
สมมติว่ามีเอกสารที่มี id 001 ในฐานข้อมูลชื่อ my_database คุณสามารถลบสิ่งนี้ได้ตามที่แสดงด้านล่าง
ก่อนอื่นรับรหัสการแก้ไขของเอกสารที่จะอัปเดต คุณสามารถค้นหาไฟล์_rev ของเอกสารในตัวเอกสารจึงได้รับเอกสารดังที่แสดงด้านล่าง
$ curl -X GET http://127.0.0.1:5984/my_database/001
{
"_id" : "001",
"_rev" : "2-04d8eac1680d237ca25b68b36b8899d3 " ,
"age" : "23"
}
ใช้รหัสการแก้ไข _rev จากเอกสารเพื่ออัปเดตเอกสาร เรากำลังอัปเดตอายุจาก 23 เป็น 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 " }
การยืนยัน
ในการตรวจสอบเอกสารให้รับเอกสารอีกครั้งโดยใช้คำขอ GET ตามที่แสดงด้านล่าง
$ curl -X GET http://127.0.0.1:5984/my_database/001
{
" _id " : " 001 ",
" _rev " : " 2-04d8eac1680d237ca25b68b36b8899d3 " ,
" age " : " 23 "
}
Note
ต่อไปนี้เป็นประเด็นสำคัญที่ควรสังเกตขณะอัปเดตเอกสาร
URL ที่เราส่งในคำขอที่มีชื่อฐานข้อมูลและรหัสเอกสาร
การอัปเดตเอกสารที่มีอยู่จะเหมือนกับการอัปเดตเอกสารทั้งหมด คุณไม่สามารถเพิ่มฟิลด์ลงในเอกสารที่มีอยู่ คุณสามารถเขียนเอกสารเวอร์ชันใหม่ทั้งหมดลงในฐานข้อมูลด้วย ID เอกสารเดียวกันเท่านั้น
เราต้องจัดหาหมายเลขการแก้ไขเป็นส่วนหนึ่งของคำขอ JSON
ในทางกลับกัน JSON มีข้อความแสดงความสำเร็จรหัสของเอกสารที่กำลังอัปเดตและข้อมูลการแก้ไขใหม่ หากคุณต้องการอัปเดตเวอร์ชันใหม่ของเอกสารคุณต้องอ้างอิงหมายเลขการแก้ไขล่าสุดนี้
การอัปเดตเอกสารโดยใช้ Futon
ในการลบเอกสารให้เปิดไฟล์ http://127.0.0.1:5984/_utils/ url เพื่อรับหน้าภาพรวม / ดัชนีของ CouchDB ดังที่แสดงด้านล่าง
เลือกฐานข้อมูลที่มีเอกสารที่จะอัปเดตแล้วคลิก เรากำลังอัปเดตเอกสารในฐานข้อมูลที่ชื่อtutorials_point. คุณจะได้รับรายชื่อเอกสารในฐานข้อมูลดังที่แสดงด้านล่าง
เลือกเอกสารที่คุณต้องการอัปเดตและคลิกที่เอกสารนั้น คุณจะได้รับเนื้อหาของเอกสารดังที่แสดงด้านล่าง
ที่นี่หากต้องการอัปเดตสถานที่จากเดลีไปยังไฮเดอราบาดคลิกที่กล่องข้อความแก้ไขฟิลด์และคลิกปุ่มสีเขียวเพื่อบันทึกการเปลี่ยนแปลงดังที่แสดงด้านล่าง
การลบเอกสารโดยใช้ยูทิลิตี้ cURL
คุณสามารถลบเอกสารใน CouchDB ได้โดยส่งคำร้องขอ HTTP ไปยังเซิร์ฟเวอร์โดยใช้เมธอด DELETE ผ่านยูทิลิตี้ cURL ต่อไปนี้เป็นไวยากรณ์ในการลบเอกสาร
curl -X DELETE http : // 127.0.0.1:5984 / database name/database id?_rev id
การใช้ −X,เราสามารถระบุวิธีการร้องขอที่กำหนดเองของ HTTP ที่เราใช้ในขณะที่สื่อสารกับเซิร์ฟเวอร์ HTTP ในกรณีนี้เราใช้วิธี Delete ในการลบฐานข้อมูล/database_name/database_id/
นั้นไม่เพียงพอ คุณต้องส่งรหัสการแก้ไขล่าสุดผ่าน url เพื่อกล่าวถึงคุณลักษณะของโครงสร้างข้อมูลใด ๆ"?" ถูกนำมาใช้.
ตัวอย่าง
สมมติว่ามีเอกสารในฐานข้อมูลชื่อ my_databaseด้วยรหัสเอกสาร 001 ในการลบเอกสารนี้คุณต้องได้รับ rev id ของเอกสาร รับข้อมูลเอกสารตามที่แสดงด้านล่าง
$ curl -X GET http://127.0.0.1:5984/my_database/001
{
" _id " : " 001 ",
" _rev " : " 2-04d8eac1680d237ca25b68b36b8899d3 " ,
" age " : " 23 "
}
ตอนนี้ระบุรหัสการแก้ไขของเอกสารที่จะลบรหัสของเอกสารและชื่อฐานข้อมูลที่เป็นของเอกสารดังที่แสดงด้านล่าง -
$ curl -X DELETE http://127.0.0.1:5984/my_database/001?rev=1-
3fcc78daac7a90803f0a5e383f4f1e1e
{"ok":true,"id":"001","rev":"2-3a561d56de1ce3305d693bd15630bf96"}
การยืนยัน
ในการตรวจสอบว่าเอกสารถูกลบหรือไม่ให้ลองดึงเอกสารโดยใช้ไฟล์ GETวิธี. เนื่องจากคุณกำลังดึงเอกสารที่ถูกลบจะมีข้อความแสดงข้อผิดพลาดดังที่แสดงด้านล่าง -
$ curl -X GET http://127.0.0.1:5984/my_database/001
{"error":"not_found","reason":"deleted"}
การลบเอกสารโดยใช้ Futon
ก่อนอื่นตรวจสอบเอกสารในฐานข้อมูล ต่อไปนี้เป็นภาพรวมของฐานข้อมูลที่ชื่อtutorials_point.
คุณสามารถสังเกตได้ที่นี่ฐานข้อมูลประกอบด้วยเอกสารสามชุด หากต้องการลบเอกสารใด ๆ ให้พูด003, ทำสิ่งต่อไปนี้ -
คลิกที่เอกสารคุณจะได้รับหน้าที่แสดงเนื้อหาของเอกสารที่เลือกในรูปแบบของคู่ค่าฟิลด์
หน้านี้ยังมีสี่ตัวเลือก ได้แก่ Save Document, Add Field, Upload Attachment, Delete Document.
คลิกที่ Delete Document ตัวเลือก
คุณจะได้รับกล่องโต้ตอบว่า "Are you sure you want to delete this document?" คลิกที่ลบเพื่อลบเอกสาร
การแนบไฟล์โดยใช้ cURL
คุณสามารถแนบไฟล์ไปยัง CouchDB ได้เช่นเดียวกับอีเมล ไฟล์นี้มีข้อมูลเมตาเช่นชื่อและรวมถึงประเภท MIME และจำนวนไบต์ที่ไฟล์แนบมี ในการแนบไฟล์ไปยังเอกสารคุณต้องส่งคำขอ PUT ไปยังเซิร์ฟเวอร์ ต่อไปนี้เป็นไวยากรณ์ในการแนบไฟล์กับเอกสาร -
$ 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"
คำขอมีตัวเลือกต่างๆที่อธิบายไว้ด้านล่าง
--data-binary@ - ตัวเลือกนี้บอกให้ cURL อ่านเนื้อหาของไฟล์ในเนื้อหาคำขอ HTTP
-H - ตัวเลือกนี้ใช้เพื่อระบุประเภทเนื้อหาของไฟล์ที่เรากำลังจะอัปโหลด
ตัวอย่าง
ให้เราแนบไฟล์ชื่อ boy.jpg, ไปยังเอกสารที่มี id 001, ในฐานข้อมูลชื่อ my_databaseโดยส่งคำขอ PUT ไปยัง CouchDB ก่อนหน้านั้นคุณต้องดึงข้อมูลของเอกสารด้วย id001 เพื่อรับกระแส rev id ตามที่แสดงด้านล่าง
$ curl -X GET http://127.0.0.1:5984/my_database/001
{
"_id": "001",
"_rev": "1-967a00dff5e02add41819138abb3284d"
}
ตอนนี้ใช้ไฟล์ _rev ส่งคำขอ PUT ไปยังเซิร์ฟเวอร์ CouchDB ดังที่แสดงด้านล่าง
$ 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"
การยืนยัน
ในการตรวจสอบว่ามีการอัปโหลดไฟล์แนบหรือไม่ให้ดึงเนื้อหาเอกสารตามที่แสดงด้านล่าง
$ 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
}
}
}
การแนบไฟล์โดยใช้ Futon
อัปโหลดไฟล์แนบ
เมื่อใช้ตัวเลือกนี้คุณสามารถอัปโหลดไฟล์แนบใหม่เช่นไฟล์รูปภาพหรือเอกสารไปยังฐานข้อมูล โดยคลิกที่ไฟล์Upload Attachmentปุ่ม. กล่องโต้ตอบจะปรากฏขึ้นซึ่งคุณสามารถเลือกไฟล์ที่จะอัปโหลดได้ เลือกไฟล์และคลิกที่ไฟล์Upload ปุ่ม.
ไฟล์ที่อัปโหลดจะแสดงภายใต้ฟิลด์ _attachments ในภายหลังคุณสามารถดูไฟล์ได้โดยคลิกที่ไฟล์