2 つのキーを含むソファベース ビューをクエリするにはどうすればよいですか。最初の NSNumber タイプ (以下の例では created と呼ばれます) と NSString タイプ (username と呼ばれます)。
CBLView* view = [database viewNamed:@"by_username"];
if (!view.mapBlock)
{
[view setMapBlock: MAPBLOCK({
if ( [doc[@"type"] isEqualToString:@"user"] )
{
emit(@[doc[@"created"],doc[@"username"]], nil);
};
}) version: @"2"];
}
CBLQuery* q = [view createQuery];
q.keys = @[ @[ @{}, @"john" ] ];
// run query
上記のクエリでは、doc[@"username"] == @"john" を持つすべてのドキュメントが、doc[@"created"] の値に関係なく一致することを期待しています (つまり、@{ } はワイルドカードと同等です)。
ただし、ユーザー名が @"john" のドキュメントが多数存在するにもかかわらず、クエリは 0 件の一致を返します。私は何か間違ったことをしているに違いないので、どんな洞察も大歓迎です!