Parse platform 如何按解析指针的一个值对数组进行排序

Parse platform 如何按解析指针的一个值对数组进行排序,parse-platform,parse-cloud-code,Parse Platform,Parse Cloud Code,我使用解析作为我的后端,使用条带作为我的支付API。不幸的是,Stripe没有我需要的优惠券功能,所以我自己在Parse上实现了这一功能 我为每个用户提供了一个优惠券对象,该对象包含一个用户兑换的所有优惠券对象的数组。当他们通过我的应用程序请求服务时,我希望它从该阵列中弹出最高价值的优惠券 我当前的解决方案效率极低,而且不是动态的,三个优惠券值中的每一个都有单独的数组,我在继续下一个或弹出其中一个优惠券对象之前检查每个数组是否为空 我希望尽量减少使用的请求数量,以便更好地扩展 我必须获取优惠券对

我使用解析作为我的后端,使用条带作为我的支付API。不幸的是,Stripe没有我需要的优惠券功能,所以我自己在Parse上实现了这一功能

我为每个用户提供了一个优惠券对象,该对象包含一个用户兑换的所有优惠券对象的数组。当他们通过我的应用程序请求服务时,我希望它从该阵列中弹出最高价值的优惠券

我当前的解决方案效率极低,而且不是动态的,三个优惠券值中的每一个都有单独的数组,我在继续下一个或弹出其中一个优惠券对象之前检查每个数组是否为空

我希望尽量减少使用的请求数量,以便更好地扩展

我必须获取优惠券对象,因此我的第一个想法是以某种方式将优惠券数组包含在该获取中,有点像查询的include()方法。但是,我看不到fetch的功能。当我键入此命令时,我记得您可以使用query.find()获取特定对象,因此我将尝试这样做,而不是设置objectId并调用fetch,并使用.include()方法。这是对优惠券数组的每个对象使用额外的请求,还是对查询使用一个请求?我甚至可以.include()作为指针数组的属性吗?如果我这样做,我只需要遍历优惠券,找出哪个优惠券的值最大,然后从数组中删除那个优惠券

另一个想法是在我向数组中添加优惠券时保持数组的排序,这样我总是能够弹出第一个优惠券并仅获取该优惠券,而不是遍历所有优惠券。但是,这将要求我在添加优惠券时获取数组中的所有优惠券,因此,如果在查询中包含数组不会使用额外的请求,那么就请求使用而言,它实际上是更有效的选择

我正在研究的第三个想法涉及基于优惠券数组执行查询,并按值键降序排序。但是,我不确定如何设置该查询。是否是
query.containedIn(“objectId”,couponArray)
,其中
couponArray
是优惠券对象的指针数组,
query
是优惠券对象的查询?然后我可以使用
query.first()
来获取对象,我相信查询只会使用一个请求

如果你今后有什么建议,我将不胜感激。如果这类问题有点违反政策,我也很抱歉,因为我是在征求关于如何开始实施某项政策的建议,而不是关于如何修复我正在实施的某项政策的建议

谢谢你的阅读


杰克

在这种情况下,我会完全远离阵列。不需要使用数组使查询或数据模型复杂化

为每个优惠券设置一个单独的
优惠券
对象,并包含一个指向任何适用对象的
用户
指针。然后,您所要做的就是查询指向用户的所有优惠券,按降序排序,然后设置。如果有优惠券,首先是最大的

这种方法的一个缺点可能是创建大量的
优惠券
对象,但这与此无关。Parse非常擅长管理数据库,并对其进行适当的分片/分段以获得良好的性能。要限制在给定时间内活动的优惠券数量,您还可以为每个优惠券添加过期日期,然后使用云后台作业定期清理过期优惠券


作为一般的经验法则,专注于构建尽可能最好的用户体验比过分关注可伸缩性要好得多。总的来说,可伸缩性问题很少出现,因为大多数应用程序都失败了。不这样说是令人沮丧的;请记住一点,以免您陷入以时间为代价的过度工程的陷阱:)

在这种情况下,我会完全远离阵列。不需要使用数组使查询或数据模型复杂化

为每个优惠券设置一个单独的
优惠券
对象,并包含一个指向任何适用对象的
用户
指针。然后,您所要做的就是查询指向用户的所有优惠券,按降序排序,然后设置。如果有优惠券,首先是最大的

这种方法的一个缺点可能是创建大量的
优惠券
对象,但这与此无关。Parse非常擅长管理数据库,并对其进行适当的分片/分段以获得良好的性能。要限制在给定时间内活动的优惠券数量,您还可以为每个优惠券添加过期日期,然后使用云后台作业定期清理过期优惠券


作为一般的经验法则,专注于构建尽可能最好的用户体验比过分关注可伸缩性要好得多。总的来说,可伸缩性问题很少出现,因为大多数应用程序都失败了。不这样说是令人沮丧的;只是要记住一件事,防止你陷入以时间为代价的过度工程的陷阱:)

介意我给你打电话吗?我有几件事想问一下,还有一些关于我的实现的信息,我想提供给大家,以确保我正确地设置了它,如果没有低字符限制,这会更容易。我会用任何相关信息更新我的问题和你的答案,以供子孙后代参考。当然,如果我给你发DM,很高兴能帮上忙吗?我有几件事想问一下,还有一些关于我的实现的信息,我想提供给大家,以确保我正确地设置了它,如果没有低字符限制,这会更容易。我会用任何相关信息更新我的问题和你的答案,以供后人参考。当然,很乐意为你提供帮助