Как получить общее количество документов из коллекции? - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть коллекция filterrecords

filterrecords схема имеет следующую запись

{
    "_id" : ObjectId("5b8e877a47d6f21b1065f54a"),
    "Id" : ObjectId("5b8930c09e973018f8fe7377"),
    "SubmittedOn" : ISODate("2018-08-31T12:12:48.413Z"),
    "5b7bde155cabec2148afae09" : "2018-05-12T00:00:00+0530",
    "5b7bde155cabec2148afae0a" : "Palwal",
    "5b7bde155cabec2148afae0b" : "Hafed Sale Point, Panchkula"
}{
    "_id" : ObjectId("5b8e877a47d6f21b1065f54b"),
    "Id" : ObjectId("5b89306b9e973018f8fe7322"),
    "SubmittedOn" : ISODate("2018-08-31T12:11:23.119Z"),
    "5b7bde155cabec2148afae09" : "2018-06-16T00:00:00+0530",
    "5b7bde155cabec2148afae0a" : "Sonipat",
    "5b7bde155cabec2148afae0b" : "Hafed Sale Point, Sonipat"
}{
    "_id" : ObjectId("5b8e877a47d6f21b1065f54c"),
    "Id" : ObjectId("5b892ff69e973018f8fe72cf"),
    "SubmittedOn" : ISODate("2018-08-31T12:09:26.191Z"),
    "5b7bde155cabec2148afae09" : "2018-07-21T00:00:00+0530",
    "5b7bde155cabec2148afae0a" : "Fatehabad",
    "5b7bde155cabec2148afae0b" : "Hafed Sale Point, Ratia"
}{
    "_id" : ObjectId("5b8e877a47d6f21b1065f54d"),
    "Id" : ObjectId("5b892fbe9e973018f8fe72c2"),
    "SubmittedOn" : ISODate("2018-08-31T12:08:30.755Z"),
    "5b7bde155cabec2148afae09" : "2018-08-25T00:00:00+0530",
    "5b7bde155cabec2148afae0a" : "Ambala",
    "5b7bde155cabec2148afae0b" : "Hafed Sale Point, Ambala"
}{
    "_id" : ObjectId("5b8e877a47d6f21b1065f54e"),
    "Id" : ObjectId("5b892f639e973018f8fe7273"),
    "SubmittedOn" : ISODate("2018-08-31T12:06:59.792Z"),
    "5b7bde155cabec2148afae09" : "2018-07-06T00:00:00+0530",
    "5b7bde155cabec2148afae0a" : "Sonipat",
    "5b7bde155cabec2148afae0b" : "Hafed Sale Point, Sonipat"
}{
    "_id" : ObjectId("5b8e877a47d6f21b1065f54f"),
    "Id" : ObjectId("5b892f109e973018f8fe7266"),
    "SubmittedOn" : ISODate("2018-08-31T12:05:36.121Z"),
    "5b7bde155cabec2148afae09" : "2018-08-17T00:00:00+0530",
    "5b7bde155cabec2148afae0a" : "Faridabad",
    "5b7bde155cabec2148afae0b" : "Hafed Sale Point, Faridabad"
}{
    "_id" : ObjectId("5b8e877a47d6f21b1065f550"),
    "Id" : ObjectId("5b892e129e973018f8fe721b"),
    "SubmittedOn" : ISODate("2018-08-31T12:01:22.722Z"),
    "5b7bde155cabec2148afae09" : "2018-04-05T00:00:00+0530",
    "5b7bde155cabec2148afae0a" : "Chandigarh",
    "5b7bde155cabec2148afae0b" : "Hafed Sale Point Chandigarh"
}{
    "_id" : ObjectId("5b8e877a47d6f21b1065f551"),
    "Id" : ObjectId("5b892dd39e973018f8fe71d2"),
    "SubmittedOn" : ISODate("2018-08-31T12:00:19.345Z"),
    "5b7bde155cabec2148afae09" : "2018-05-17T00:00:00+0530",
    "5b7bde155cabec2148afae0a" : "Sirsa",
    "5b7bde155cabec2148afae0b" : "Hafed Sale Point, Sirsa",
    "5b7bde155cabec2148afae0c" : "Oil",
    "5b7bde155cabec2148afae0d" : "KACHCHI GHANI MUSTARD OIL"
}{
    "_id" : ObjectId("5b8e877a47d6f21b1065f552"),
    "Id" : ObjectId("5b892d749e973018f8fe718b"),
    "SubmittedOn" : ISODate("2018-08-31T11:58:44.234Z"),
    "5b7bde155cabec2148afae09" : "2018-07-12T00:00:00+0530",
    "5b7bde155cabec2148afae0a" : "Jind",
    "5b7bde155cabec2148afae0b" : "Hafed Sale Point, Jind"
}

Мне нужна запись, основанная на поле SubmittedOn, в документе много записей. Я хочу, чтобы количество записей составляло сегодня, за неделю, за месяц и за год. для этого я делаю это,

db.filterrecords.aggregate([{
            "$match" : {
                "_id" : {
                    "$in" : [
                        ObjectId("5b8e877a47d6f21b1065f54a"),
                        ObjectId("5b8e877a47d6f21b1065f54b"),
                        ObjectId("5b8e877a47d6f21b1065f54c"),
                        ObjectId("5b8e877a47d6f21b1065f54d"),
                        ObjectId("5b8e877a47d6f21b1065f54e"),
                        ObjectId("5b8e877a47d6f21b1065f54f"),
                        ObjectId("5b8e877a47d6f21b1065f550"),
                        ObjectId("5b8e877a47d6f21b1065f551"),
                        ObjectId("5b8e877a47d6f21b1065f552"),
                        ObjectId("5b8e877a47d6f21b1065f553"),
                        ObjectId("5b8e877a47d6f21b1065f554"),
                        ObjectId("5b8e877a47d6f21b1065f555"),
                        ObjectId("5b8e877a47d6f21b1065f556"),
                        ObjectId("5b8e877a47d6f21b1065f557"),
                        ObjectId("5b8e877a47d6f21b1065f558"),
                        ObjectId("5b8e877a47d6f21b1065f559")                        
                    ]
                }
            }
        }
    ]).pretty()

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

{
                $addFields: {
                    TodaysFormSubmissions: {
                        $filter: {
                            input: "$filterrecords",
                            as: "filterrecords_field",
                            cond: {
                                $gte: ["$$filterrecords_field.SubmittedOn", today]
                            }
                        }
                    },
                    WeeksFormSubmissions: {
                        $filter: {
                            input: "$filterrecords",
                            as: "filterrecords_field",
                            cond: {
                                $gte: ["$$filterrecords_field.SubmittedOn", week]
                            }
                        }
                    },
                    MonthFormSubmissions: {
                        $filter: {
                            input: "$filterrecords",
                            as: "filterrecords_field",
                            cond: {
                                $gte: ["$$filterrecords_field.SubmittedOn", month]
                            }
                        }
                    },
                    YearFormSubmissions: {
                        $filter: {
                            input: "$filterrecords",
                            as: "filterrecords_field",
                            cond: {
                                $gte: ["$$filterrecords_field.SubmittedOn", year]
                            }
                        }
                    }
                }
            }, {
                $addFields: {
                    TodaysFormSubmissions: {
                        $size: "$TodaysFormSubmissions"
                    },
                    WeeksFormSubmissions: {
                        $size: "$WeeksFormSubmissions"
                    },
                    MonthFormSubmissions: {
                        $size: "$MonthFormSubmissions"
                    },
                    YearFormSubmissions: {
                        $size: "$YearFormSubmissions"
                    },
                    TotalFormSubmissions: {
                        $size: "$FormSubmissions"
                    }
                }
            }

Вверху week="2018-08-28T13:30:00.000Z",today="2018-09-04T13:30:00.000Z",month="2018-08-04T13:30:00.000Z",year="2017-09-04T13:30:00.000Z"

Я не знаю точного условия получения записи по состоянию на неделю, сегодня и т. Д. Возможно, я ошибаюсь здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...