Meteor Mongo查询返回返回24小时内创建的文档

时间:2015-03-19 19:53:30

标签: mongodb meteor

我在Meteor中创建一个简单的应用程序,用于查找数据库中的项目并返回与用户名匹配且在过去24小时内创建的项目计数。

如果从查询中删除createdAt逻辑,模板将加载用户提交的数据库中的条目总数。使用createdAt逻辑,模板呈现在辅助条件中声明的Loading而不是实际计数。

/server/methods.js我有:

    Meteor.methods({
      Counter: function () {
        return Items.find({
          username: Meteor.user().username,
          createdAt: {$gt: Date.now()*1000 - 24*60*60}
        }).count();
      }
    });

/client/home/helpers.js我有:

    Template.home.created = function() {
        Meteor.call('Counter', function(err, result) {
            Session.set("theCounter", result);
        });
    };

    Template.home.helpers({
      counter: function() {
        return Session.get("theCounter") || "Loading";
      }

    });

然后在/client/home/home.html

    <template name="home">
        Submitted In Last 24 Hours: {{ counter }}
    </template>

1 个答案:

答案 0 :(得分:0)

代码有两个问题:

首先,如果计数器为0,return Session.get("theCounter") || "Loading";将始终显示“loading”。您需要这样做:

var c = Session.get('theCounter');
if (c != null)
  return c;
else
  return 'loading';

接下来,日期数学不正确。 Date.now()已经是毫秒,所以你需要修改你的查询:

Date.now() - 24*60*60*1000