Пн go запрос базы данных для получения и удаления записей за 2018 год - PullRequest
1 голос
/ 11 июля 2020

Я использую приведенный ниже запрос для поиска записей за 2018 год. Мой запрос - найти первые записи за 2018 год, а затем удалить записи за 2018 год. могу ли я удалить из GUI Robo3t?

db.transaction.find().sort({timeStamp:1}).limit(5000);

образец документа:

{ 
    "_id" : 999999001, 
    "eventId" : "LAS071", 
    "eventName" : "YouRefer", 
    "timeStamp" : "2018-06-17T17:12:55.254Z", 
    "eventMethod" : "Reporting", 
    "resourceName" : "AddSTB", 
    "targetType" : "", 
    "resourseUrl" : "", 
    "operationName" : "", 
    "functionStatus" : "", 
    "pageId" : "CloseJobView", 
    "ban" : 144235039, 
    "jobId" : 139980225, 
    "wrid" : 139980225, 
    "jobType" : "MRJ2IX", 
    "Uid" : "kt7201", 
    "techRegion" : "SE", 
    "mgmtReportingFunction" : "N", 
    "recordPublishIndicator" : "Y" 
}

Я использовал запрос и получение при поиске записей:

db.transaction.deleteMany({
  "timeStamp": { $gte: new Date(2018, 0, 1), $lt: new Date(2019, 0, 1) }
})

но У меня около 100 тыс. записей за 2018 год. Как мы можем использовать вышеуказанный запрос для удаления 5 тыс. записей за раз?

HI Experts,

Я попытался найти сначала в коллекции, но он говорит: 0 записи получены.

db.transaction.find({
  "timeStamp": { $gte: new Date(2018, 0, 1), $lt: new Date(2019, 0, 1) }
})

Output: Fetched 0 record(s) in 31ms

Но я проверил в коллекции, что ниже присутствуют записи с этой меткой времени,

"timeStamp" : ISODate("2018-12-31T18:30:03.379Z"),

"timeStamp" : ISODate("2018-12-31T18:30:03.982Z"),
 

1 Ответ

0 голосов
/ 11 июля 2020

Это команда оболочки для удаления всех документов за 2018 год:

db.transaction.deleteMany({
  "timeStamp": { $gte: new Date(2018, 0, 1), $lt: new Date(2019, 0, 1) }
})

Она работает, запрашивая все записи с timeStamp, большим или равным 1 января 2018 года, и с timeStamp меньше, чем 1 января 2019 года.

Изменить

Ваше поле timeStamp похоже на строку. Попробуйте использовать этот запрос, который ищет строку 2018:

{ "timeStamp": { $regex: "^2018" } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...