我正在加载测试一个基本的聊天室应用程序,并在Kadira中注意到大约286毫秒花费在" ObserveChanges"订阅。
' roomDetail'订阅使用roomId参数来查找所有"消息"匹配roomId的文档,如下所示:
Meteor.publish('roomDetail', function(roomId) {
return Messages.find({roomId: roomId}, {limit: 100, sort: { submitted : -1 }});
});
我想知道如何缩短" observeChanges"这里。我已经在"消息"上添加了索引。系列:
消息=新的Mongo.Collection('消息');
if (Meteor.isServer) {
// Index on roomid and reverse date order
Messages._ensureIndex({roomId: 1, submitted: -1});
}
但我认为这不会帮助我在#34; observeChanges"上做出高响应时间。
关于如何最好地缩短响应时间的任何想法?我不遵循某些最佳做法吗?
答案 0 :(得分:0)
我认为roomId
上的MongoDB索引会有所帮助。没有正式的方法可以在应用程序中自动执行此操作,但您可以a)从Mongo控制台执行此操作,或者b)我似乎记得有一些方法可以从Meteor获取标准的Node MongoDB驱动程序集合,您可以使用它创建索引。