48

データストレージにfirebaseを使用しています。データ構造は次のようになります。

products:{
   product1:{
      name:"chocolate",
   }
   product2:{
      name:"chochocho",
   }
}

このデータに対してオートコンプリート操作を実行したいのですが、通常は次のようにクエリを記述します。

"select name from PRODUCTS where productname LIKE '%" + keyword + "%'";

たとえば、私の状況では、ユーザーが「cho」と入力した場合、結果として「chocolate」と「chochocho」の両方を表示する必要があります。すべてのデータを「製品」ブロックの下に置き、クライアントでクエリを実行することを考えましたが、これには大きなデータベースには多くのメモリが必要になる場合があります。では、SQL LIKE 操作を実行するにはどうすればよいですか?

ありがとう

4

5 に答える 5

19

私はあなたができると信じています:

admin
.database()
.ref('/vals')
.orderByChild('name')
.startAt('cho')
.endAt("cho\uf8ff")
.once('value')
.then(c => res.send(c.val()));

これにより、名前が cho で始まる val が検索されます。

ソース

于 2017-08-21T03:55:06.423 に答える