Пн go Запрос базы данных для получения отдельных записей - PullRequest
1 голос
/ 04 августа 2020

У меня ниже коллекции в БД около 1 миллиона записей. Hpw, чтобы получить отдельные eventID и eventName из коллекций в D для любой конкретной даты, например 29-07-2020?

{
    "_id" : 1814099,
    "eventId" : "LAS012",
    "eventName" : "CustomerTab",
    "timeStamp" : ISODate("2018-12-31T20:09:09.820Z"),
    "eventMethod" : "click",
    "resourceName" : "CustomerTab",
    "targetType" : "",
    "resourseUrl" : "",
    "operationName" : "",
    "functionStatus" : "",
    "results" : "",
    "pageId" : "CustomerPage",
    "ban" : "290824901",
    "jobId" : "87377713",
    "wrid" : "87377713",
    "jobType" : "IBJ7FXXS",
    "Uid" : "sc343x",
    "techRegion" : "W",
    "mgmtReportingFunction" : "N",
    "recordPublishIndicator" : "Y",
    "__v" : 0
}

1 Ответ

0 голосов
/ 04 августа 2020

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

let eventIds = await db.collection.distinct('eventID', {
   "timeStamp": {
         $gte: ISODate("2018-12-30T00:00:00.000Z"),
         $lt: ISODate("2018-12-31T00:00:00.000Z")
   }
})

Если вы хотите получить оба поля одновременно, вам нужно будет использовать агрегация:

db.collection.aggregate([
    {
        $match: {
            "timeStamp": {
                $gte: ISODate("2018-12-30T00:00:00.000Z"),
                $lt: ISODate("2018-12-31T00:00:00.000Z")
            }
        }
    },
    {
        $facet: {
            eventIds: [
                {
                    $group: {
                        _id: "$eventID"
                    }
                }
            ],
            eventName: [
                {
                    $group: {
                        _id: "$eventName"
                    }
                }
            ]
        }
    }
])

И если eventID и eventName связаны друг с другом:

db.collection.aggregate([
    {
        $match: {
            "timeStamp": {
                $gte: ISODate("2018-12-30T00:00:00.000Z"),
                $lt: ISODate("2018-12-31T00:00:00.000Z")
            }
        }
    },
    {
        $group: {
            _id: {eventID: "$eventID", eventName: "$eventName"}
        }
    }
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...