Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Meteor JS:如何根据日期获取最新数据集?_Mongodb_Meteor - Fatal编程技术网

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

Mongodb Meteor JS:如何根据日期获取最新数据集?,mongodb,meteor,Mongodb,Meteor,我有一个要求,我的数据库中有一组具有相同时间戳(最新)的记录,我想一次获取所有记录,我不想获取不属于该标准的任何其他数据,问题是我不知道时间戳,因为它存储在数据库中,来自外部世界 如何仅获取meteor中的最新数据集?我不能做findOne,因为它只会带来1张最新记录,这在我的情况下是错误的 Meteor.publish("collection1", function() { return Collection1.find({}, {sort:{dateTime: -1}}); }); 我

我有一个要求,我的数据库中有一组具有相同时间戳(最新)的记录,我想一次获取所有记录,我不想获取不属于该标准的任何其他数据,问题是我不知道时间戳,因为它存储在数据库中,来自外部世界

如何仅获取meteor中的最新数据集?我不能做findOne,因为它只会带来1张最新记录,这在我的情况下是错误的

Meteor.publish("collection1", function() {
  return Collection1.find({}, {sort:{dateTime: -1}});
});
我尝试执行上述代码,但它得到了所有记录,我认为它只是按desc排序。

使用方法获取最新的
日期时间
值,然后可以用作查询:

// 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应用程序在客户端可伸缩,因为客户端只订阅您只需要的数据。这是因为函数中的return语句只能返回具有最新
dateTime
值的文档。这样,无论服务器端数据库有多大,都可以避免浏览器内存过载。

{sort:{dateTime:-1},limit:10}
在客户端(subscribe)中,我应该返回Collection1.find({})??或者我也需要你提到的东西?@SharathBangera我已经在答案中添加了一些关于如何在客户端订阅的解释。@chridam当我使用limit时,这是如何工作的,比如获取最新的50条记录?