如何根据快递的日期从mongoDB获取数据?

界线

我正在尝试根据创建日期从mongoDB集合中获取数据。

用于获取数据的日期格式: yyyy-mm-dd(例如:2015-04-14)

保存在集合中的格式:时间戳记:“ 2015-04-13T17:50:48.761Z”

控制器 :

       $scope.getExpences = function (date) {
            SelectedMemberExpence.get( date )
                .success(function (result) {
                    $scope.allExpences = result;
                })
        }

服务 :

.service('SelectedTimeExpence', function ($http) {
    return {
      get : function(datetime) {
      return $http.get('/api/expences/'+ datetime); 
    },
      delete : function(datetime) {
      return $http.delete('/api/expences/'+ datetime);
    }
   }
})

快递代码:

router
  .param('datetime', function (req, res, next) {
     req.dbQuery = { timestamp : req.params.datetime };
     next();
  })
  .route('/expences/:datetime')
     .get(function (req, res) {
        var collection = db.get('memberExpences');
        collection.find(req.dbQuery , function (err, data) {
            res.json(data);
        });
});

我知道,我在“表达”代码功能中做错了。请帮助任何人解决此问题。

克列丹

timestamp您集合中字段的字符串类型类似于ISO日期时间戳字符串。该查询肯定无法工作,因为您将比较两个完全不同的字符串(基于长度,该timestamp字段包含的字符多于datetimereq参数值)。

如果要在文档架构中包括实际上代表日期的另一个字段,则会容易得多:

db.collection.find().forEach(function (doc){
    doc.created_on = ISODate(doc.timestamp);
    db.collection.save(doc);
});

然后,您可以使用范围查询来搜索文档,该文档的created_on字段值大于表示datetime可变日开始日期的Date对象,而小于表示datetime可变日结束日期的Date对象

首先,您需要构造代表日期的开始和结束的Date对象datetime例如:

var datetime = "2015-04-14",
start = new Date(datetime),
dateParts = datetime.split('-'),
y = parseInt(dateParts[0], 10),
m = parseInt(dateParts[1], 10),
d = parseInt(dateParts[2], 10),
end = new Date(y, m-1, d+1);
console.log(start.toISOString()); // "2015-04-14T00:00:00.000Z "
console.log(end.toISOString());  // "2015-04-15T00:00:00.000Z"

在您的Express代码中,您可以对其进行修改以反映上述内容:

router
  .param('datetime', function (req, res, next) {
      var start = new Date(req.params.datetime),
          dateParts = datetime.split('-'),
          y = parseInt(dateParts[0], 10),
          m = parseInt(dateParts[1], 10),
          d = parseInt(dateParts[2], 10),
          end = new Date(y, m-1, d+1);  
      req.dbQuery = {"created_on": { $gte: start, $lt: end }};
      next();
  })
  .route('/expences/:datetime')
     .get(function (req, res) {
        var collection = db.get('memberExpences');
        collection.find(req.dbQuery , function (err, data) {
            res.json(data);
        });
});

请注意使用特殊$运算符$gte(大于或等于)和$lt(小于),它们用于执行范围查询以获取匹配的文档。

使用MomentJS

var start = moment("2015-04-14").format();
var end = moment(start).add('days', 1);
db.collection.find({"created_on": {"$gte": start, "$lt": end}});

编辑

在节点中,Mongo驱动程序将为您提供ISO字符串,而不是对象,因此,如果您想created_on在文档中包括其他字段,只需添加具有当前日期值的新字段即可。例如:

.post(function (req, res) { 
     var date = new Date(); 
     var expence = req.body; 
     expence["created_on"] = date;
     var collection = db.get('memberExpences'); 
     collection.insert(expence, function (err, data) { 
         res.json(200); 
     });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据日期获取 Firebase 数据库保存的数据?

来自分类Dev

Meteor JS:如何根据日期获取最新数据集?

来自分类Dev

如何根据日期列中的月份从SQLite获取数据

来自分类Dev

如何根据特定日期获取所有数据?

来自分类Dev

如何根据条件获取数据

来自分类Dev

如何根据日期条件获取记录?

来自分类Dev

如何根据最大日期获取不同的记录?

来自分类Dev

如何根据出现多次的月份获取日期?

来自分类Dev

如何在避免循环的同时根据股票代码和日期获取数据?

来自分类Dev

Nodejs Mongodb在日期之间获取数据

来自分类Dev

根据日期从MySQL数据库获取数据

来自分类Dev

根据日期从MySQL数据库获取数据

来自分类Dev

根据两个日期从数据库获取数据

来自分类Dev

根据日期字段从数据集中获取最新数据

来自分类Dev

如何根据熊猫中的日期填写数据

来自分类Dev

如何根据结束日期显示组数据?

来自分类Dev

如何根据日期解析数据框

来自分类Dev

如何根据日期总结数据框?

来自分类Dev

如何在快递的不同路线中获取套接字发出的数据?

来自分类Dev

MongoDB / Mongoose查询:如何根据字段的值获取不同的数据集

来自分类Dev

如何根据列中的日期获取超过 14 天的日期?

来自分类Dev

如何在MongoDB中按日期分组获取数据百分比

来自分类Dev

根据pymongo中的日期条件从mongodb检索数据

来自分类Dev

如何根据日期组的最新日期过滤数据?

来自分类Dev

根据当前日期和配置数据获取记录

来自分类Dev

根据条件从数据框中获取最早的日期

来自分类Dev

根据当前日期和配置数据获取记录

来自分类Dev

根据给定的日期范围从SQL获取数据,引发转换错误

来自分类Dev

在PostgreSQL中根据日期获取数据和总和

Related 相关文章

  1. 1

    如何根据日期获取 Firebase 数据库保存的数据?

  2. 2

    Meteor JS:如何根据日期获取最新数据集?

  3. 3

    如何根据日期列中的月份从SQLite获取数据

  4. 4

    如何根据特定日期获取所有数据?

  5. 5

    如何根据条件获取数据

  6. 6

    如何根据日期条件获取记录?

  7. 7

    如何根据最大日期获取不同的记录?

  8. 8

    如何根据出现多次的月份获取日期?

  9. 9

    如何在避免循环的同时根据股票代码和日期获取数据?

  10. 10

    Nodejs Mongodb在日期之间获取数据

  11. 11

    根据日期从MySQL数据库获取数据

  12. 12

    根据日期从MySQL数据库获取数据

  13. 13

    根据两个日期从数据库获取数据

  14. 14

    根据日期字段从数据集中获取最新数据

  15. 15

    如何根据熊猫中的日期填写数据

  16. 16

    如何根据结束日期显示组数据?

  17. 17

    如何根据日期解析数据框

  18. 18

    如何根据日期总结数据框?

  19. 19

    如何在快递的不同路线中获取套接字发出的数据?

  20. 20

    MongoDB / Mongoose查询:如何根据字段的值获取不同的数据集

  21. 21

    如何根据列中的日期获取超过 14 天的日期?

  22. 22

    如何在MongoDB中按日期分组获取数据百分比

  23. 23

    根据pymongo中的日期条件从mongodb检索数据

  24. 24

    如何根据日期组的最新日期过滤数据?

  25. 25

    根据当前日期和配置数据获取记录

  26. 26

    根据条件从数据框中获取最早的日期

  27. 27

    根据当前日期和配置数据获取记录

  28. 28

    根据给定的日期范围从SQL获取数据,引发转换错误

  29. 29

    在PostgreSQL中根据日期获取数据和总和

热门标签

归档