如何根据Parse中的birthdate和min / max年龄值过滤结果?

时间:2015-05-01 05:27:27

标签: ios parse-platform

我正在使用Parse iOS SDK。我想根据用户指定的年龄范围过滤用户。

我有两张桌子:

1st, tableUser ,其中包含一个标题为birthdate且数据类型为String的字段。

第二, tableSettings ,其中有两个字段minAgemaxAge,两者都是Number类型

我想从tableUser班级中获取用户,这些用户的年龄(根据生日值字段计算)介于tableSettings班级中指定的年龄范围之间。例如,如果minAge值为20且maxAge值为25,那么我只想检索年龄介于此范围内的用户。

这可能吗?我该如何进行这样的查询呢?

1 个答案:

答案 0 :(得分:1)

对于次优的数据结构,您的要求听起来并不重要。我可能会选择云代码来隐藏应用程序所需的逻辑。这个逻辑是查询tableSettings并计算适用的日期范围。

既然你有这个范围,它仍然很难使用,因为你的另一个表使用日期的字符串表示而不是真正的Date类型。这真的很糟糕。如果可以,您应该将日期更改为正确的类型,或者至少添加另一个列,并使用正确的日期表示(但是您必须保持它们同步)。

使用日期可以为查询添加特定的范围标准,生活很简单。

使用字符串很困难,因为你有一天的第一天,所以你甚至不能使用BEGINSWITH来过滤年份的查询,然后处理内容。对于这个问题来说,这确实是一个糟糕的数据模型。所以这基本上让你翻译所有将字符串显式转换为日期然后将其与范围进行比较的内容。

如果您可以,请更改数据模型。即使您专门为此数据创建了一个新类(表),并使用afterSave挂钩来保持它们同步。