반응형
Mongodb는 오늘 날짜별로 생성된 결과를 찾습니다.
매달 결과를 얻기 위해 이 질문이 있습니다.하지만 저는 오늘의 결과를 얻고 싶었습니다.
var start = new Date(2010, 11, 1);
var end = new Date(2010, 11, 30);
db.posts.find({created_on: {$gte: start, $lt: end}});
이것을 하는 가장 좋은 방법은 무엇입니까?
시작 날짜 개체는 현재 날짜 시간을 다음 시간으로 유지해야 합니다.00:00:00.000
(밀리초 정밀도) 및 오늘 날짜의 시간을 다음으로 설정합니다.23:59:59.999
:
var start = new Date();
start.setHours(0,0,0,0);
var end = new Date();
end.setHours(23,59,59,999);
그런 다음 MongoDB 쿼리 연산자에서 수정된 날짜 개체를 평소와 같이 전달합니다.
db.posts.find({created_on: {$gte: start, $lt: end}});
dayjs date 유틸리티 라이브러리를 사용하는 경우 dayjs current date 객체의 및 메서드를 사용하여 문자열을 전달할 수 있습니다.'day'
다음과 같이 주장대로:
const start = dayjs().startOf('day'); // set to 12:00 am today
const end = dayjs().endOf('day'); // set to 23:59 pm today
다음과 같이 사용할 수도 있습니다.
db.posts.find({
$expr: {
$eq: [
{ $dateToString: { format: '%Y-%m-%d', date: '$$NOW' } },
{ $dateToString: { format: '%Y-%m-%d', date: '$created_on' } },
],
},
})
해결책
오늘 날짜 결과 또는 날짜 사이의 데이터를 찾으려면 다음을 사용합니다.
노드 JS:
// Date format YYYY-MM-DD
// Suppose you want to look for 1 day data between 2021-12-27 00:00:00 and 2021-12-28 00:00:00
let start = new Date("2021-12-27");
let end = new Date("2021-12-28");
// "created_on" can be any field with a date
db.posts.find({created_on: {$gte: start, $lt: end}});
이것은 Mongo Shell에서도 작동합니다.
db.posts.find({created_on: {$gte: new ISODate("2021-12-27T00:00:00.000Z"), $lt: new ISODate("2021-12-28T00:00:00.000Z")}})
다른 방법:
// 27th half day
db.posts.find({created_on: {$gte: new Date("2021-12-27T00:00:00.000Z"), $lt: new Date("2021-12-27T12:00:00.000Z")}})
언급
$lt
보다 낮음
// Get Today Start Date and End Date
let startOfDay = new Date();
startOfDay.setHours(0, 0, 0, 0);
let endOfDay = new Date();
endOfDay.setHours(23, 59, 59, 999);
// Get Yesterday Start Date and End Date
let startOfYesterday = new Date();
startOfYesterday.setDate(startOfYesterday.getDate() - 1);
startOfYesterday.setHours(0, 0, 0, 0);
let endOfYesterday = new Date();
endOfYesterday.setDate(endOfYesterday.getDate() - 1);
endOfYesterday.setHours(23, 59, 59, 999);
// Get Last Month Start Date and End Date
let startOfPreviousMonth = new Date();
startOfPreviousMonth.setMonth(startOfPreviousMonth.getMonth() - 1);
startOfPreviousMonth.setDate(1);
startOfPreviousMonth.setHours(0, 0, 0, 0);
let endOfPreviousMonth = new Date();
endOfPreviousMonth.setMonth(endOfPreviousMonth.getMonth() - 1);
let lastDayOfPreviousMonth = new Date(
endOfPreviousMonth.getFullYear(),
endOfPreviousMonth.getMonth() + 1,
0
);
endOfPreviousMonth.setDate(lastDayOfPreviousMonth.getDate());
endOfPreviousMonth.setHours(23, 59, 59, 999);
언급URL : https://stackoverflow.com/questions/29327222/mongodb-find-created-results-by-date-today
반응형
'programing' 카테고리의 다른 글
Vuex가 일부 데이터를 구성 요소로 반환하는 중 (0) | 2023.06.23 |
---|---|
삽입이 성공하지 못한 경우 기본 키 증가를 방지하시겠습니까? (0) | 2023.06.23 |
전체 iOS 앱의 기본 글꼴을 설정하시겠습니까? (0) | 2023.06.23 |
@RequestParams가 비어 있지 않은지 확인하려면 어떻게 해야 합니까? (0) | 2023.06.23 |
'ObjectId' 개체에 'getTimeStamp' 특성이 없습니다. (0) | 2023.06.23 |