データストア複合フィルタ OR クエリ
温馨提示:
本文最后更新于 2024年04月12日,已超过 48 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
次のフィルターを使用する誰の書き込みを変更しようとしています。
CompositeFilter.and(
eq("firstName", firstName),
ge("lastName" lastName),
lt("lastName", lastName.concat("\uf8ff")))
投稿は通常に機能しますが、DB 内の一部のユーザーには firstName と lastName フィールドはなく、基本的に同じ情報 (タグと姓) を含む他のフィールドがあります。
データが欠落しているユーザーを取得する方法としてこれを思いつきました。
CompositeFilter.or(
CompositeFilter.and(
eq("firstName", firstName),
ge("lastName", lastName),
lt("lastName", lastName.concat("\uf8ff"))),
CompositeFilter.and(
eq("tag", firstName),
ge("surname", lastName),
lt("surname", lastName.concat("\uf8ff")))
)
ここで、書き込みがデータストアからエンティティを取得しないことに驚きました。 CompositeFilters のこのネストはサポートされていますか?
ここで、GQL を使用して GCP で書き込みを実行しようとすると、次の書き込みが結果を取得することがわかります。
SELECT * FROM `db` WHERE (tag="Carlos" AND surname>="Palma" AND surname<"Palma" )
しかし、結果を取得しない別の書き込みと OR を実行すると、結果が得られません。
SELECT * FROM `db` WHERE (tag="Carlos" AND surname>="Palma" AND surname<"Palma" ) OR
(firstName="Carlos" AND lastName>="Palma" AND lastName<"Palma" )
私にとって、これはかなり奇妙です。 最初の書き込みでは結果が得られたのに、OR を実行すると結果が得られないのはなぜですか?それとも結果を追加するものではないですか?
正文到此结束
- 本文标签: 家庭宠物
- 本文链接: https://www.coder6.net/article/2439
- 版权声明: 本文由蚂蚁原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
-
浏览(193) 评论(0)