概要:
名前フィールドが始まるエンティティの検索特定の文字列を使用することは、データ クエリにおける一般的な要件です。 Google App Engine Datastore はこれを実現する方法を提供しますが、すぐには分からないかもしれません。この記事では、そのようなクエリを作成する方法を示し、他の App Engine サービスでの代替ソリューションを検討します。
問題ステートメント:
「名前が始まる場所を取得しようとしました」フィルター クエリを使用して特定の文字列を使用しましたが、機能しません。この機能はデータストアでサポートされていますか?サポートされていない場合、考えられる回避策は何ですか?"
クエリの構築:
プレフィックス クエリの背後にある直感は、名前がプレフィックス文字列より大きいエンティティをフィルターすることです。ただし、不等式フィルターを 1 つだけ使用すると (名前 > "a")、プレフィックスで始まる名前を持つすべてのエンティティが除外されるため失敗します。
解決策は、2 つの不等式フィルターを組み合わせることにあります。名前がプレフィックス文字列以上であり、次の辞書編集文字列より小さいことを指定する必要があります。
クエリの例:
次の場所を取得してみましょう。 "li" で始まる:
q = datastore.NewQuery("Places").Filter("Name >=", "li").Filter("Name <", "lj")
説明:
代替ソリューション:
このアプローチが特定の要件を満たさない場合、App Engine は高度なクエリ用の他のサービスを提供します。
以上がApp Engine Datastore でプレフィックス付きの文字列を検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。