比较PouchDB中的日期(字符串)

时间:2017-06-02 15:27:29

标签: pouchdb

我有一个托管的CouchDB,它有一个日期(字符串?)字段,其值类似于" 03-Mar-2007"。我有一个角度应用程序,它使用一个数据包来从远程提取数据并做一些事情。

我需要查找日期值小于当前日期的记录。

我使用下面的代码,但它不起作用。

 db.createIndex({
                index: {
                    //fields: ['Pincode', 'subscriberid']
                    fields: ['Pincode', 'IssueDtto']
                }
            })....

我使用' find'搜索记录:

var cdate = getFormattedDate($scope.curdate);

function getFormattedDate(date) {
            var year = date.getFullYear();
            var month = (1 + date.getMonth()).toString();
            month = month.length > 1 ? month : '0' + month;
            var day = date.getDate().toString();
            day = day.length > 1 ? day : '0' + day;
            return day + '-' + monthNames[date.getMonth()] + '-' + year;
        }

 db.find({
    selector: {
    Pincode: { $eq: pin }
    ,IssueDtto: { $lt: cdate }
   }

然而,这似乎不起作用。我究竟做错了什么?请帮忙。

由于

2 个答案:

答案 0 :(得分:2)

您可以将日期转换为可排序格式,例如从date.toISOString()获得的ISO格式。日期看起来像这样:2007-03-01T00:00:00.000Z,它可以很好地排序字符串。然后,您还可以使用索引并使用find

答案 1 :(得分:0)

我做了一个解决方法,从db.find中删除了'date'字段选择器,只使用了另一个选择器,得到了所有文档和(手动)过滤的行。

angular.forEach(r.docs, function (val) {
 var dt = new Date(val.IssueDtto);
 if (dt < $scope.curdate)
   $scope.todo.push(val);
 });