Couchbase的现场比较机制如何运作?

时间:2015-10-02 02:44:57

标签: ios objective-c couchbase couchbase-lite nosql

我仍然是NoSQL数据库的新手,但是可查询的对象存储概念似乎很简单。但是,在规划基于基于内容的图像检索数据库的算法时,我需要围绕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年以来显然还没有更新。也许它更适合我的需求?

1 个答案:

答案 0 :(得分:0)

我认为抓住外卡的开始键/结束键的答案是' \ ueffff'所以你可以将这个值附加到你的例子中的字符串值,并且基本上得到一个与相同的键相关的东西的外卡,但适合许多变化。