【问题标题】:how to filter last 10 days records from mongoDb?如何从 mongoDb 过滤过去 10 天的记录?
【发布时间】:2017-03-10 06:47:51
【问题描述】:
var require = require('moment');
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!

var yyyy = today.getFullYear();

if(dd<10) {
  dd='0'+dd
} 

if(mm<10) {   
  mm='0'+mm
} 

today = yyyy+'/'+mm+'/'+dd;
console.log(today);
videofiles.find({date:{$lte:'today'}}

上面提到的是我的代码..下面是我的 Db 值..我不知道如何从 mongodb 中过滤过去 10 天的记录。 我已经提到过滤日期的值小于或等于今天,但我真的需要过滤最近 10 天的记录,我是 mongo db 的新手,node.js videofiles 指的是我在 mongodb 中的集合的名称。

"date": "2017/03/10",
"is_deleted": 0,
"filemimeType": "audio/mp3",
"emotionCount": 0,
"originalname": "1489042167918-1489040146195-SampleAudio_0.5mb (1).mp3",
"updatedAt": "2017-03-10T05:54:34.032Z",
"isUserLiked": 0,
"country": "India",
"fileuploadFilename": "1489125273974-1489042167918-1489040146195-SampleAudio_0.5mb (1).mp3",
"_id": "58c23f9a180ac54d758b5fc0",
"likeCount": 0,
"viewed": 0

【问题讨论】:

  • 你今天为什么用字符串''
  • 按哪个字段过滤?
  • 您将日期存储为字符串,因此您的概念将不起作用。虽然也有一种方法可以将其作为字符串进行,但首选方法是使用日期作为时间戳。
  • 能否请您提及在字符串中执行此操作的代码以及时间戳?

标签: node.js mongodb


【解决方案1】:

添加此代码:

today.setDate(today.getDate() - 10);

在这一行之后:

var today = new Date();

然后替换你的代码行:

videofiles.find({date:{$lte:'today'}}

用这一行:

db.videofiles.find({"date":{"$gte":'today'}})

【讨论】:

    【解决方案2】:

    您可以对最近 10 天的记录执行此操作,

    videofiles.find(
    {
        "date": 
        {
            $gte: (new Date((new Date()).getTime() - (10 * 24 * 60 * 60 * 1000)))
        }
    }
    ).sort({ "date": -1 })
    

    【讨论】:

    • 好吧。但我需要过滤最后 10 天的记录,而不是最后 10 天的记录。你能推荐一个代码吗?
    【解决方案3】:

    moment的一条线解决方案:

    const moment = require("moment")
    
    const docs = await Doc.find({
        createdAt: {
            $gte: moment().add(-10, "days"),
        }
    })
    

    【讨论】:

      【解决方案4】:

      使用find()方法和createAt属性查找过去10天的记录,

      const moment = require("moment")
      const docs = await Doc.find({
          createdAt: {
              $gte: moment().add(-10, "days"),
          }
      })
      

      【讨论】:

        猜你喜欢
        • 2022-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-05
        相关资源
        最近更新 更多