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