MongoDB灵活的邮件通知条件
Posted
技术标签:
【中文标题】MongoDB灵活的邮件通知条件【英文标题】:Mongodb flexible email notification conditions 【发布时间】:2017-08-22 01:38:51 【问题描述】:我正在寻找一种方法将条件存储在 mongodb 中,以进行查询和检查,然后根据条件检查执行某些操作。
首先是我正在考虑的事件对象的示例
"name": "My Event",
"created": 1490726092221,
"startDate": 1490726092221,
"endDate": 1490726097810,
"notifications": [
"message": "event.Name Created", // message template
"status": 0, // 0=initialized 1=failed 2=sent
"sendDate": null, // date that the notification was sent
"sentTo": ["c2a34dfg32c1d4583e73a123"] //members to send notification to
"criteria":
"script": "event.created >= 0 && this.status < 2"
],
"members": [
"_id": "c2a34dfg32c1d4583e73a123" // Reference to the user
]
用例,我想为事件定制通知。因此,如果安排了一个事件,它可能会通知它何时创建、事件开始日期在几天内、成员加入时等。虽然我可以将所有这些编码到 javascript 函数中并通过枚举与它们对应对于通知标准,或者在某些事件发生时有挂钩,这似乎是一种严格的方法。
我所设想的可能是一种脚本语言,它可以作为字符串存储在文档上,可以查询和评估,这将返回一个布尔值来触发或不触发通知。
脚本需要将事件作为输入变量,以及一些可供脚本使用的特殊输入变量。
这可以使用 javascript 和 eval()
来完成,但这让我很害怕。是否有任何其他工具可用于此用例?或者,有什么建议可以更好地解决这个问题吗?
【问题讨论】:
您可以将js脚本的名称存储在您的文档中,您可以在检索文档时使用参数(甚至文档自己的字段)调用它,条件: script:“someScript.js”喜欢require("/../notification-scripts/" + doc.criteria.script)()
这是一个不错的主意。不过,它仍然需要硬编码脚本。我的目标是拥有一组用户创建的通知。这很难安全地做到,我最终可能会放弃
【参考方案1】:
听起来您正在构建一个带有 MongoDB 后端的工作流引擎。我将首先研究此答案中列出的内容Workflow engine in Javascript
【讨论】:
您能否更深入地了解如何在我的用例中使用工作流引擎? 您确实需要阅读工作流引擎并很好地理解它们。如果你这样做了,你就不会问这个问题了。所以我能做的就是重申,详细阅读工作流引擎,这样你就不会在不知道***存在的情况下重新发明***。我不喜欢仅仅因为您不愿意谷歌“工作流引擎”而浪费我的时间在另一个问题上。所以我不赞成你的问题。 你的整个评论都是浪费时间。我已经对其进行了研究,并在我的课程中深入了解了 FSM。我已阅读有关工作流引擎的信息,但我不了解与我的应用程序的连接,因此我问了一个后续问题以帮助指导我更多。我不怀疑您的建议是否适用,但经过一番研究,我只是不明白。在粗鲁地回复评论之前,请不要假设我做了什么。我可能还是不明白,这正是这个网站的用途。无论如何,感谢您的回答和 cmets。以上是关于MongoDB灵活的邮件通知条件的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS 和 MongoDB:在文档插入时向多个用户发送电子邮件和仪表板通知 [关闭]