花费在" ObserveChanges"上的长响应时间|流星js

时间:2014-12-27 19:17:17

标签: javascript node.js mongodb meteor

我正在加载测试一个基本的聊天室应用程序,并在Kadira中注意到大约286毫秒花费在" ObserveChanges"订阅。

Kadira

' 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"上做出高响应时间。

关于如何最好地缩短响应时间的任何想法?我不遵循某些最佳做法吗?

1 个答案:

答案 0 :(得分:0)

我认为roomId上的MongoDB索引会有所帮助。没有正式的方法可以在应用程序中自动执行此操作,但您可以a)从Mongo控制台执行此操作,或者b)我似乎记得有一些方法可以从Meteor获取标准的Node MongoDB驱动程序集合,您可以使用它创建索引。