2015-10-02 2 views
3

Я до сих пор довольно новичок в базе данных NoSQL, но концепция хранилища объектов, подходящая для запросов, кажется достаточно простой. Однако при планировании моего алгоритма для базы данных Content Based Image Retrieval мне нужно обернуть голову вокруг процесса, с помощью которого Couchbase сравнивает сохраненные свойства.Как работает механизм сравнения полей Couchbase?

Кажется, что написание документов принимает только NSString, поэтому я предполагаю, что указанные ключи NSDictionary считаются строками. Кроме того, приложения для документации и примеров на самом деле не объясняют, как данные хранятся и анализируются во время запроса.

Например, из examples page.

CBLView* orderedByDateView = [self getView]; 
[orderedByDateView setMapBlock: MAPBLOCK({ 
    emit(doc[@"date"], nil); 
}) version: @"1" /* Version of the mapper */ ]; 

orderedByDateQuery.descending = YES; 
orderedByDateQuery.startKey = @"2015";
  
orderedByDateQuery.endKey = @"2014";
  
orderedByDateQuery.limit = 20; 

Этот код говорит мне выбрать максимум 20 объектов таким образом, чтобы диапазон собственности date находится между 2014 и 2015 годами (в предположении, были промежуточные значения, например, 2014.1, 2014,2). Но как насчет объектов, которые не так вырезаны, сухие и струны или чей метод описания не представляет его достаточно хорошо? Какой механизм используется для равенства и существуют ли другие операторы, кроме равенства? Могут ли мои объекты использовать протокол NSCopying и сохранять и восстанавливать?

Я также изучал NanoStore. Кажется, он хранит больше структур данных Objective-C ish, хотя, по-видимому, он не обновлялся с 2013 года. Возможно, это лучший вариант для моих потребностей?

ответ

0

Я считаю, что ответ для ключа запуска/завершения ключа для захвата дикой карты - «\ ueffff», поэтому вы можете добавить это значение к строковому значению в вашем примере и по существу получить дикую карту вещей, связанных с те же самые клавиши, но при этом устанавливаются многие варианты.

Смежные вопросы