Удалить документ mon go на основе отметки даты - PullRequest
0 голосов
/ 25 марта 2020

У меня есть следующая структура формата даты и времени в объекте json, и я хотел бы удалить документы, созданные ранее, чем 2019 год. Вы видите созданный ключ с отметкой даты и времени. Мы можем игнорировать сроки. Как бы я удалил все документы старого тогда 2020 года.

db.collection.find({}).pretty()
{
"created" : "6/6/2020, 6:37:15 PM",
"created_by" : "aaaaa",
"last_updated_by" : "aaaa"
}

{
"created" : "6/6/2019, 6:37:15 PM",
"created_by" : "bbbbb",
"last_updated_by" : "bbbbb"
}

{
"created" : "6/6/2018, 6:37:15 PM",
"created_by" : "ccccc",
"last_updated" : "6/6/2018, 6:51:47 PM",
"last_updated_by" : "ccccc"
}

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

1 Ответ

0 голосов
/ 25 марта 2020

Если вы хотите программно работать с датами, гораздо проще, если вы сохраните их в международном формате ISO8601, который сортирует псевдо-правильно как строку, или сохраните их как тип даты BSON.

В в этом случае вы можете получить довольно близко к тому, что вы хотите, извлекая год из строки, преобразовывая его в int и сравнивая его.

db.collection.remove({$expr:{$lt:[{$toInt:{$arrayElemAt:[{$split:[{$arrayElemAt:[{$split:["$created",","]},0]},"/"]},2] }},2019]}})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...