2017-07-13 10 views
1

私は、このテーブルのセカンダリインデックスを作成することができます:indexCreate('contact', {multi: true})複雑な二次インデックス操作

しかし、私はこのためにインデックスを作成することができます:このように

{ 
    contact: [ 
    '[email protected]' 
    ] 
} 

{ 
    contact: [ 
    { 
     type: 'email', 
     main: true 
     value: '[email protected]' 
    } 
    { 
     type: 'phone' 
     value: '0735521632' 
    } 
    ] 
} 

セカンダリインデックス希望をタイプが「電子メール」で、メインが「true」に設定されているオブジェクトでのみ検索

答えて

1

このようなインデックスを作成する方法は次のとおりです。

table.indexCreate(
    'email', 
    row => row('contact').filter({type: 'email'})('value'), 
    {multi: true}) 

これはマルチインデックスを使用して動作します。 multi: true引数がindexCreateに渡されると、index関数は単一の値ではなく配列を返すことが期待されます。その配列内のすべての要素を使用して、インデックス内の文書を検索することができます(getAllまたはbetweenを使用)。配列が空の場合、文書は索引に表示されません。

+0

Genius 0> 0 ありがとう、これは役立ちます。 私はSlack:Pで会ったと思う – ProNOOB

関連する問題