Выбор дат (мм-дд-гггг) в этом месяце из mongodb

Как я могу выбрать даты из моего mongodb только для этого месяца, у меня есть date:{type:String}, и мой формат: mm-dd-yyyy ex: 09-03-2019:

Вот мой маршрутизатор, чтобы получить четкие даты, а затем подсчитать их, но не ежемесячно:

router.get('/blooddonationarea', function(req, res) {
    sess=req.session;
    Blooddonation.aggregate([{$group: {_id : "$date" , count :{$sum:1}}},{$sort: {_id: 1}}],function(err, date) {     
    res.json({ success: true, date: date });

    });       
});

уступает:

[ { _id: '04-11-2019', count6: 1 },
  { _id: '05-21-2019', count6: 1 },
  { _id: '10-11-2019', count6: 3 },
  { _id: '10-22-2019', count6: 1 } ]

Мой желаемый результат - отображать даты, например, когда date = month.now(), тогда он будет отображать только месяцы для 01-dd-yyyy.

Я пробовал это:

const startOfMonth = moment().startOf('month').format('MM-DD-YYYY')
const endOfMonth = moment().endOf('month').format('MM-DD-YYYY')

        Blooddonation.aggregate([
        { "$match": {
            "date": { "$gte": startOfMonth, "$lte": endOfMonth }
        }},
        { "$group": { "_id": "$date", "count": { "$sum": 1 } } },
        { "$sort": { "_id": 1 } }],function(err, date) {     
            res.json({ success: true, date: date });
            console.info("dates are" + date);
        });              
    });

@ GrégoryNEUT Нет, это не сработает. Поскольку он также получит данные за последний год.

Ashh 14.01.2019 16:53

о, хорошо, плохо, читай слишком быстро

Orelsanpls 14.01.2019 17:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
2
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать библиотеку moment, чтобы получить желаемый формат, а затем использовать оператор $gte и $lte, чтобы получить данные только за текущий месяц.

const moment = require('moment')

const startOfMonth = moment().startOf('month').format('MM-DD-YYYY')
const endOfMonth = moment().endOf('month').format('MM-DD-YYYY')

Blooddonation.aggregate([
  { "$match": {
    "date": { "$gte": startOfMonth, "$lte": endOfMonth }
  }}
  { "$group": { "_id": "$date", "count": { "$sum": 1 } } },
  { "$sort": { "_id": 1 } }
])

когда я пытался утешить, это дает мне: [объект Object]

Godshand 14.01.2019 17:13

Вы использовали обратный вызов или обещание, чтобы получить результат. Я думаю, вы получаете либо курсор, либо обещание !!

Ashh 14.01.2019 17:14

Вы можете посмотреть мою правку, я вставил туда то, что пробовал

Godshand 14.01.2019 17:15

Попробуйте этот Blooddonation.aggregate([...]).toArray().then((data) => console.info(data)), если вы не используете мангуста.

Ashh 14.01.2019 17:23

все еще дает мне [объект Object], что бы я ни пытался, странно

Godshand 14.01.2019 17:37

но это работает, когда я пытаюсь отобразить его на своей диаграмме, это странно, но я просто приму это

Godshand 14.01.2019 17:41

но он выводит месяцы прошлого года, ха-ха, например, январь 2018, январь 2017

Godshand 14.01.2019 17:45

Другие вопросы по теме