Как заказать результаты из CouchbaseViewQuery на Couchbase PHP SDK 2.0?

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

Почти все, что я должен догадаться, поскольку документация скудна, и ее легче спутать между 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);

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

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

UPDATE_BEFORE, UPDATE_NONE, UPDATE_AFTER, ORDER_ASCENDING, ORDER_DESCENDING

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

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

1

Решение

Вам нужно использовать функцию order() который принимает одну из двух констант:

  • ORDER_ASCENDING
  • ORDER_DESCENDING

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

Ниже приведен пример кода с использованием Пиво-образец данные поставляются с Couchbase Server.

<?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"}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]