[英]how to filter last 10 days records from mongoDb?
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 的videofiles
,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
您可以對過去 10 天的記錄執行此操作,
videofiles.find(
{
"date":
{
$gte: (new Date((new Date()).getTime() - (10 * 24 * 60 * 60 * 1000)))
}
}
).sort({ "date": -1 })
添加此代碼:
today.setDate(today.getDate() - 10);
在這一行之后:
var today = new Date();
然后替換您的代碼行:
videofiles.find({date:{$lte:'today'}}
用這一行:
db.videofiles.find({"date":{"$gte":'today'}})
帶有moment 的單行解決方案:
const moment = require("moment")
const docs = await Doc.find({
createdAt: {
$gte: moment().add(-10, "days"),
}
})
使用find()
方法和createAt
屬性查找最近 10 天的記錄,
const moment = require("moment")
const docs = await Doc.find({
createdAt: {
$gte: moment().add(-10, "days"),
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.