NoSQL移动应用程序?

是否有任何已build立的noSQL数据库解决scheme用于开发原生移动应用程序(Android和/或iOs)?

我不认为有一个原生的移动应用程序build立的 NoSQL后端,但Couchbase移动是一个伟大的NoSQL数据库与iOS和Android的实施。

iOS: http : //www.couchbase.com/products-and-services/mobile-couchbase

Android: https : //github.com/couchbase/couchbase-lite-android

leveldb是这个街区上的新人。 这是一个非常类似于BigTable的关键'/价值存储区,但专为embedded式设备而devise。 他们的执照是新BSD,比东京内阁的LGPL好得多。

它的速度非常快,可以直接从Xcode中构build出来。

如果有东京内阁的移动操作系统端口,我不会感到惊讶; 但是严重的是,NoSQL会把每个平台上已经包含的SQLite库带到哪里呢?

  • 简单的语义。 在SQL中执行键/值就像在任何NoSQL数据库上一样简单
  • 可扩展性。 一个多字节function的手机不具备移动平台的资格。
  • 微不足道的分片。 电话群还不是很受欢迎
  • 小实施。 东京的机柜源代码是4.8MB,SQLite是4.7MB。 没有真正的收益(它已经存在)。

简而言之,如果你愿意,你可以使用SQLite作为“小型NoSQL”。 它也相当快。

编辑 :(四月2016)

领域是现在走的路。


如果有人还有兴趣的话,我找了东京柜台的这两个封皮:

  • TSDocDB
  • BNRPersistence

无论如何,我认为LevelDB更好。

由于其同步function, CouchDB经常被公布为移动应用程序的NoSQL DB。 还有一个移动Couchbase的testing版本。

对于Android有这样的:

https://github.com/rehacktive/waspdb

现在是一个alpha阶段,但它可以适合您的要求。

SnappyDB似乎相当不错的Android的NoSQL选项。 对SQLite的读/写基准是相当惊人的。

iBoxDB是一个高性能的NoSQL数据库,同时支持Android和Windows Phone。 易于使用,零configuration,复制和运行。
为Java的Android https://github.com/iboxdb/forjava
for.net windows phone https://iboxdb.codeplex.com/

我在Objective-C中编写的新东西是SimpleDB。 这是一个关键/价值存储,可以在这里find: http : //github.com/AaronBratcher/SimpleDB

因为存储的值必须是JSON,所以可以完成sorting并返回数据的特定部分。

特殊function

  • 非常容易使用 – 不需要SQL!
  • 在指定date后自动删除选项
  • 没有直接的数据库交互需要使用类 – 它做的一切
  • 所有方法都是类级别的方法,所以不需要类的实例
  • 线程安全

API

+(BOOL) hasKey:(NSString*) key inTable:(NSString*) table; +(NSArray*) keysInTable:(NSString*) table; +(NSArray*) keysInTable:(NSString*) table orderByJSONValueForKey:(NSString*)jsonOrderKey passingTest:(BOOL (^)(NSString* key, NSString* value, NSDate* dateAdded, NSDate* dateModified)); +(NSString*) valueForKey:(NSString*) key inTable:(NSString*) table; +(NSDictionary*) dictionaryValueForKey:(NSString*) key inTable:(NSString*) table; +(id) jsonValueForKey:(NSString*) jsonKey tableKey:(NSString*) key inTable:(NSString*) table; +(void) setValue:(NSString*) value forKey:(NSString*) key inTable:(NSString*) table; +(void) setValue:(NSString*) value forKey:(NSString*) key inTable:(NSString*) table autoDeleteAfter:(NSDate*) date; +(void) deleteForKey:(NSString*) key inTable:(NSString*) table; +(void) dropTable:(NSString*) table; +(dbStatus) status; +(NSString*) guid;