0

首先,请原谅我的英语。

现在,我面临的问题是,现有数据库在“startOn”对象中有一个名为“Date”的列。这意味着,它类似于“startOn.Date”,并且具有类似yyyy/dd/mm. 假设,我有这样的记录:2013/06/05. 问题是,我需要从 after 2 daysto获取数据7 days。这意味着$gte: +2 days$le: +7 days

我尝试了几种方法,例如

$gte: use("RFCtoClean")(new Date(year, month - 1, day + 2)),

RFCtoClean 是:

function RFCtoClean(d) {
d = new Date(d);
return d.getUTCFullYear() + "/" + pad(d.getUTCDate()) + "/" + pad(d.getUTCMonth() + 1);}

除了以下代码的回调返回之外,这什么也不返回undefined

var currentDate = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);
                var day = currentDate.getDate()
                , month = currentDate.getMonth() + 1
                , year = currentDate.getFullYear();
Event.find({
                    author: user_id,
                    "startOn.Date": {
                        $gte: use("RFCtoClean")(new Date(year, month - 1, day + 2)),
                        $le: use("RFCtoClean")(new Date(year, month - 1, day + 7))
                    }
                }, '_id title location startOn attendees', {
                    limit: limit
                })
                .sort({_id: -1})
                .execFind(function(err, events) {
    // events variable is undefined here and empty err object,
    });

谁能帮我摆脱困境?

4

1 回答 1

0

你得到一个字符串形式的日期,像这样"2013/06/05"- 看起来你知道如何再得到两个字符串,它们是两天前或七天后,对吧?所以你将拥有:

from="2013/06/03;
till="2013/06/12;

现在只需定期查找:

db.data.find( {
               "startonDate" : {
                   $gte: from,
                   $lte: till
               } 
            } );
于 2013-05-05T05:59:33.037 回答