Javascript 在保存前保存后分析重复行
我对解析sdk还不熟悉,但我一直在努力解决这个问题。 我正在使用android客户端和一些CloudCode函数 我有两个班和两个小组 加入(存储每个加入请求) userId-指向用户类的指针Javascript 在保存前保存后分析重复行,javascript,android,mongodb,parse-platform,Javascript,Android,Mongodb,Parse Platform,我对解析sdk还不熟悉,但我一直在努力解决这个问题。 我正在使用android客户端和一些CloudCode函数 我有两个班和两个小组 加入(存储每个加入请求) userId-指向用户类的指针 人数 groupId-指向组的指针 组(标识组) placeId-指向Place类的指针 访问日期 组由placeId和DateOfVisite标识(这些将构成主键) 例如: placeId就诊日期 1111111112015-06-13 16:00 1111111112015-06-14 16:00 当
人数
groupId-指向组的指针 组(标识组) placeId-指向Place类的指针
访问日期 组由placeId和DateOfVisite标识(这些将构成主键) 例如: placeId就诊日期
1111111112015-06-13 16:00
1111111112015-06-14 16:00 当用户想要加入placeId:1111111和访问日期:2015-06-14 16:00时,我想检查是否存在现有组,或者我需要创建一个新组,并将此组ID分配给此加入请求 我已经阅读了解析文档,由于缺少事务/系统锁,所以无法在组中创建唯一的行,但是有一些解决方法 解决方案1:保存前+保存后 将在组上创建beforeSave和aftersave钩子JS方法。
保存前将检查
-如果已经存在一个组(请求中包含placeId和DateOfVisite),则不执行任何操作
-否则保存/创建新组。
AfterSave将
在createdAt列上按升序执行query.first equalTo(请求中的placeId和dateOfVisit),然后返回此groupId并将其保存到加入请求中 解决方案2:afterSave+后台作业 我一点也不在乎重复的条目
AfterSave会 在createdAt列上按升序执行query.first equalTo(请求中的placeId和dateOfVisit),然后返回此groupId并将其保存到加入请求中。 后台作业将定期删除除min.createdAt条目之外的所有重复条目 这些听起来有点过分吗?
任何建议,谢谢!谢谢。您不需要在保存之前和保存之后同时进行
操作,只需在保存之前进行操作就足够了
在您的云代码中,定义一个beforeSave
函数,该函数:
- 使用
equalTo(“placeId”,placeId)
toGroups
class检查是否存在组
- 如果结果返回null,您可以创建一个新的
组
,并分配与原始请求一起发送的用户ID
。否则,将userId
与返回的对象相关联
查看有关云代码的更多信息,您可能也需要了解谢谢您的回答。组由placeId和DateOfVisite标识。根据这一点,您基本上建议使用带有查询equalTo(placeId)和equalTo(dateOfVisit)的beforeSave就足以检查现有组了?是的,如果dateOfVisit
是您的组标识否,我希望组标识是解析生成的objectId。所以我不想创建重复的条目。或者我误解了你的评论……那么你可以使用equalTo(“objectId”,你所在组的ID)