MongoDB信号到应用程序

时间:2013-05-29 13:36:31

标签: mongodb mongodb-query

简短的问题:

如果收集中的内容发生了变化,MongoDB可以联系应用程序吗?某种触发器会向应用程序发出信号,指示某些字段被更改或添加或类似的东西?

2 个答案:

答案 0 :(得分:2)

如果您可以利用spring-data-mongodb,那么您可以利用其implicit support of events来满足您的要求。

  • onBeforeConvert - 在使用MongoConveter将对象转换为DBObject之前,在MongoTemplate insert,insertList和save操作中调用。
  • onBeforeSave - 在插入/保存数据库中的DBObject之前调用MongoTemplate insert,insertList和save操作。
  • onAfterSave - 在数据库中插入/保存DBObject后,在MongoTemplate insert,insertList和save操作中调用。
  • onAfterLoad - 在从数据库中检索到DBObject之后,在MongoTempnlate中调用find,findAndRemove,findOne和getCollection方法。
  • onAfterConvert - 在从数据库检索到的DBObject转换为POJO之后,在MongoTempnlate中调用find,findAndRemove,findOne和getCollection方法。

答案 1 :(得分:1)

不,没有回调机制。

最好a)轮询文档以查看应用程序的更改,b)使用消息队列(例如RabbitMQ)将更改数据的应用程序中的更改发布给想要知道数据何时更改的订阅者。复杂的解决方案可能是c)尾随oplog,请参阅MongoConnector。您的MongoDB必须是副本集的一部分才能使其正常工作。