Meteor JS:如何根据日期获取最新的数据集?

时间:2016-02-09 11:03:58

标签: mongodb meteor

我有一个要求,我的数据库已经说了一些具有相同时间戳(最新)的记录集,并且我希望立即获得所有这些记录,我不想获得任何其他不属于该记录的数据标准,问题是我不知道时间戳,因为它存储在外部世界的数据库中。

我如何才能获得流星中最新的数据集?我不能找到一个,因为它只会带来一条最新的记录,这在我的情况下是错误的。

Meteor.publish("collection1", function() {
  return Collection1.find({}, {sort:{dateTime: -1}});
});

我尝试做上面的代码,但它获得了所有记录,我认为它只是按desc排序。

1 个答案:

答案 0 :(得分:1)

使用 findOne() 方法获取最新的dateTime值,然后您可以将其用作 find() 查询:< / p>

// on the server
Meteor.publish("collection1", function() {
    var latest = Collection1.findOne({}, {"sort":{"dateTime": -1}}).dateTime;
    return Collection1.find({"dateTime": latest});
});

// on the client
Meteor.subscribe("collection1");
Collection1.find().fetch();

上述方法使您的Meteor应用程序可以在客户端进行扩展,因为客户端只订阅您只需要的数据。这是可能的,因为 Meteor.publish 函数中的return语句只能返回具有最新dateTime值的文档。这样,无论服务器端数据库有多大,都可以避免浏览器内存过载。