针对PHP开发人员的CouchDB基础知识
2010-10-06 20:43:22 来源:WEB开发网)
接下来,从歌曲数据库中检索一个文档。清单 5 给出了所需代码。
try {
$doc = $client->getDoc('whatever_you_like');
} catch (Exception $e) {
if ( $e->code() == 404 ) {
echo "Document not found\n";
} else {
echo "Error: ".$e->getMessage()." (errcode=".$e->getCode().")\n";
}
exit(1);
}
print_r($doc);
清单 6 给出了响应。
stdClass Object
(
[_id] => whatever_you_like
[_rev] => 1-1d915e4c209a2e47e5cf05594f9f951b
[title] => Whatever You Like
[artist] => T.I.
[album] => Paper Trail
)
很不错,但是如何对一个文档进行更新呢?可以做的更新有两种:更改现有字段值;添加新字段和新值。对于后者,可以使用箭头表示法(比如 $doc->new_field
),然后通过 storeDoc()
保存更改。
清单 7 显示了更新一个文档所需的代码。
$doc->genre = 'hip-hop';
$doc->year = 2008;
try {
$response = $client->storeDoc($doc);
} catch (Exception $e) {
echo "Error: ".$e->getMessage()." (errcode=".$e->getCode().")\n";
exit(1);
}
运行此代码,然后就可以检索这个文档 ID 并获得
清单 8 内所示的结果。
stdClass Object
(
[_id] => whatever_you_like
[_rev] => 2-12513a362693b300928aa45f82faed83
[title] => Whatever You Like
[artist] => T.I.
[album] => Paper Trail
[genre] => hip-hop
[year] => 2008
)
注意到 _rev
属性已经从之前的 1-whatever
增加为 2-whatever
。借此,就可以很容易地判断已经发生了更改。
那么,该如何在数据库内存储一个新文档呢?您可以实例化一个新对象并使用箭头表示法来填充文档内的字段。
清单 9 显示了所需代码。
$song = new stdClass();
$song->_id = "in_the_meantime";
$song->title = "In the Meantime";
$song->album = "Resident Alien";
$song->artist = "Space Hog";
$song->genre = "Alternative";
$song->year = 1995;
try {
$response = $client->storeDoc($song);
} catch (Exception $e) {
echo "Error: ".$e->getMessage()." (errcode=".$e->getCode().")\n";
exit(1);
}
更多精彩
赞助商链接