在meteor中我试图从mongo返回文件,其中purchase_date在今天的日期之后。这是在aslagle / reactive-table过滤器函数的上下文中,该函数已经知道要搜索的键
我正在使用:
import sys.process._
val f = (Seq("echo", "-n", "abc\t\n") #| "tr '\\t' 'T'").!!.trim
println(f)
val g = Seq("/bin/sh", "-c", "echo 'abc\t\n' | tr '\t' 'T'").!!.trim
println(g)
今天是2015年5月30日,该字段的格式是相同的字符串0/00/00格式,但我收回月份大于5而不是月份日和年份大于我传递日期的所有内容。它似乎只是检查第一个数字(月)然后返回超过5个月的所有内容。这也让我得到了像过去那样的7/20/00之类的东西,我需要所有带有日期的文件在今天的日期之后未来。
如何在mongo选择器内完成?
答案 0 :(得分:0)
我建议您将基于字符串的日期迁移到实际日期。以下是如何创建迁移的示例(假设Transactions
是集合的名称):
Meteor.startup(function() {
var docs = Transactions.find({}, {fields: {purchase_date: 1}}).fetch();
_.each(docs, function(doc) {
var pd = new Date(doc.purchase_date);
Transactions.update(doc._id, {$set: {purchase_date: pd}});
});
});
如果您在server
目录下的任何位置添加该代码,则应在服务器启动后立即进行迁移(确保在运行后删除此代码)。我还建议首先在数据库的备份上尝试这一点,以确保它能够满足您的需要。
或者,您可以使用migrations package。
更新数据库后,您可以看到this example了解如何根据日期进行查询。