2015-02-02 6 views
1

Я начал изучать как Couchbase, так и MongoDB, чтобы решить, какой из них реализовать в социальной сети, но отсутствие документации на стороне couchbase почти заставляет меня сдаться.Как заказать результаты от CouchbaseViewQuery на Couchbase PHP SDK 2.0?

Практически все, что я должен угадать, поскольку документация плохая, и проще путать между PHP SDK 2.0 и предыдущими версиями. Существует много документации, но о старых версиях sdk.

http://docs.couchbase.com/sdk-api/couchbase-php-client-2.0.2/index.html

Теперь после моего оттоку, на мой вопрос.

У меня есть этот код, и необходимый вид создан:

$cb = CouchbaseViewQuery::from('dev_testimonials', 'by_uid')->key($uid)->limit($max)->skip($inicio); 

Он работает, как и следовало ожидать, за исключением того, что мне нужно упорядочить результаты по возрастанию или убыванию, но я could't найти где-нибудь документацию что. Я думал -> нисходящий (правда) должен делать трюк, но не работает. Не существует.

Все, что ссылка API говорит о заказе на CouchbaseViewQuery, список констант:

UPDATE_BEFORE, UPDATE_NONE, UPDATE_AFTER, ORDER_ASCENDING, ORDER_DESCENDING

Но нет объяснений о том, как и где используй их.

Не могли бы вы помочь? Благодарю.

ответ

1

Функция, которую необходимо использовать, order(), который принимает один из двух констант:

  • ORDER_ASCENDING
  • ORDER_DESCENDING

В PHP все class константы общедоступны. Для доступа к константам может использоваться следующий код: CouchbaseViewQuery::ORDER_ASCENDING или CouchbaseViewQuery::ORDER_DESCENDING.

Ниже приведен пример кода с использованием данных Beer-sample, поставляемых с сервером Couchbase.

<?php 
// Connect to Couchbase Server 

$cluster = new CouchbaseCluster('http://127.0.0.1:8091'); 
$bucket = $cluster->openBucket('beer-sample'); 
$query = CouchbaseViewQuery::from('beer', 'by_location')->skip(6)->limit(2)->reduce(false)->order(CouchbaseViewQuery::ORDER_ASCENDING); 
$results = $bucket->query($query); 

foreach($results['rows'] as $row) { 
     var_dump($row['key']); 
} 

echo "Reversing the order\n"; 

$query = CouchbaseViewQuery::from('beer', 'by_location')->skip(6)->limit(2)->reduce(false)->order(CouchbaseViewQuery::ORDER_DESCENDING); 
$results = $bucket->query($query); 

foreach($results['rows'] as $row) { 
     var_dump($row['key']); 
} 

Вот выход из приведенного выше кода:

array(3) { 
    [0]=> 
    string(9) "Australia" 
    [1]=> 
    string(15) "New South Wales" 
    [2]=> 
    string(6) "Sydney" 
} 
array(3) { 
    [0]=> 
    string(9) "Australia" 
    [1]=> 
    string(15) "New South Wales" 
    [2]=> 
    string(6) "Sydney" 
} 
Reversing the order 
array(3) { 
    [0]=> 
    string(13) "United States" 
    [1]=> 
    string(7) "Wyoming" 
    [2]=> 
    string(8) "Cheyenne" 
} 
array(3) { 
    [0]=> 
    string(13) "United States" 
    [1]=> 
    string(7) "Wyoming" 
    [2]=> 
    string(6) "Casper" 
}