freekrai / schemaless
此包已被废弃,不再维护。没有推荐替代包。
基于 SqLite 的无模式数据库
dev-master
2015-02-14 03:04 UTC
Requires
- php: >=5.3.2
This package is not auto-updated.
Last update: 2015-07-01 12:47:00 UTC
README
基于 MongoDB,构建在 SqLite 之上的无模式数据库
示例用法
$client = new Schemaless\Client( PATH_TO_WRITABLE_FOLDER ); $database = $client->testdb; $collection = $database->products; $entry = ["name"=>"Rocky Road", "price"=>20,'qty'=>20]; $collection->insert($entry); $products = $collection->find(); // Get Cursor if ( $products->count() ) { echo 'Total Records: '.$products->count().'<br />'; foreach($products->sort( ["price"=>1] )->limit(5) as $product) { echo '<pre>'.print_r($product,true).'</pre>'; } }
查询集合
通常可以使用回调或简单数组作为条件
$products = $collection->find(function($document) { // recommended to query data return $document["price"] > 10; }); foreach( $products as $product ){ echo '<pre>'.print_r($product,true).'</pre>'; } echo '<hr />'; //or $products = $collection->find( ["price"=>['$gt'=>10]] ); // only very simple criteria is supported (can be slow) foreach( $products as $product ){ echo '<pre>'.print_r($product,true).'</pre>'; } echo '<hr />'; //or just one $product = $collection->findOne(function($document) { // recommended to query data return $document["name"] == 'Rocky Road'; }); echo '<pre>'.print_r($product,true).'</pre>'; echo '<hr />'; $product = $collection->findOne( ["name"=>'Rocky Road'] ); echo '<pre>'.print_r($product,true).'</pre>';
写入文档
$collection->insert($document); $collection->save($document); $collection->update($criteria, $data);
删除文档
$collection->remove($criteria);
API
客户端
Client::listDBs() Client::selectDB(databasename) Client::selectCollection(databasename, collectionname)
数据库
Database::vacuum() Database::drop() Database::createCollection(collectionname) Database::dropCollection(collectionname) Database::getCollectionNames() Database::listCollections() Database::selectCollection(collectionname)
集合
Collection::drop() Collection::renameCollection(newname) Collection::insert(document) Collection::save(document) Collection::update(criteria, data) Collection::remove(criteria) Collection::count() Collection::find(criteria) Collection::findOne(criteria)
游标
Cursor::count() Cursor::limit(number) Cursor::skip(number) Cursor::sort(array) Cursor::each($callable) Cursor::toArray()
安装
要使用 composer PHP 包管理器安装和使用 Schemaless,请按照以下步骤操作
如果您还没有,请在新项目的根目录中创建 composer.json 文件,该项目将使用 Schemaless。
将以下内容添加到 composer.json 文件中...
{
"require": {
"freekrai/schemaless": "dev-master"
}
}
安装 composer(如果尚未安装)
curl -s https://getcomposer.org/installer | php
php composer.phar install