首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于数据的node.js mongodb滤波器

问基于数据的node.js mongodb滤波器
EN

Stack Overflow用户
提问于 2016-06-08 10:00:06
回答 2查看 6.1K关注 0票数 2

在mongodb集合的node.js中,如何根据date_added字段筛选前一年、前一周和前一个月的集合文档?date_added字段采用ISO Date格式

代码语言:javascript
复制
{
    "_id" : ObjectId("574e68e5ac9fbac82489b689"),
    "title" : "car",
    "price" : 100,
    "date_added" : ISODate("2016-06-01T04:47:33.025Z"),

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-09 04:03:12

最好的方法是使用moment.js

做npm install moment

代码语言:javascript
复制
var moment = require ('moment')

 function previous_year_artist(req, res, next) {
        var dateTimeTofilter = moment().subtract(1, 'year');
        var filter = {
            "date_added": {
                $gte: new Date(dateTimeTofilter._d)
            }
        };
        db.collection.find(
            filter
        ).toArray(function(err, result) {
            if (err) return next(err);
            res.send(result);
        });

    }

根据您的要求使用year,month, week

票数 1
EN

Stack Overflow用户

发布于 2016-06-08 10:40:22

我假设您在node.js中有一个名为dateTimeTofilter的变量

代码语言:javascript
复制
var week = 7,
    year =365,
    month = 31; // this values you need to calculate and then use in query


var dateTimeTofilter =  new Date() - week;
var filter = {"date_added": { $lte: dateTimeTofilter }}; 
                            // or $gte- depends on time windows

var cursor = db.collection('collectionName').find(filter);

cursor.forEach(
    function(doc) {
           //process data here
          } 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37699286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档