我正在使用MongoDB和Morphia,我的目标是聊天。
我的想法是请求所有序列号大于指定号码的邮件。
例如,如果您请求消息0,您将收到所有消息,但如果您请求消息100,您将只接收序号大于100的消息。
如果没有找到消息,则应该锁定请求者,直到出现消息,换句话说,请求者等待将来的消息。
我的问题是,如何用MongoDB和Morphia实现?我不想定期查询是否有更新的消息...
MongoDB是否支持锁定,直到有结果?
谢谢; - )
答案 0 :(得分:1)
您可以使用tailable游标。这个例子有点旧,但应该让你大部分时间。 https://github.com/deftlabs/mongodb-examples/tree/master/mongo-java-tailable-cursor-example
答案 1 :(得分:1)
您确定Java / Morphia是解决此问题的最佳解决方案吗?
聊天和任何其他实时应用程序,可能更好地由Meteor.js和类似的框架提供服务。具体来说,Meteor的oplog尾随对于聊天更加聪明 - 将更新推送到客户端而不是让他们进行拉/轮询。或者对于tailable游标,您不限于上限集合。
答案 2 :(得分:0)
谢谢;-),是的封顶收藏是非常有限的。
如果有人找不到tailable iterator,也许你正在导入com.google.code.morphia(我有错误)。