Конвертировать строку даты в длинную в MongoDB - PullRequest
1 голос
/ 10 июня 2019

Уже есть несколько основных вопросов о конверсиях.

Поскольку я новичок в MongoDB, мне нужна помощь для этого конкретного преобразования:

Дата последнего изменения сохраняется как тип данных String ( "last_modification": "/ Date (1520430205000) /" ) в моем документе. Я должен получить только значение numeric(1520430205000) из поля и преобразовать его в long.

После преобразования последним значением модификации должно быть 1520430205000 как long тип данных.

1 Ответ

1 голос
/ 10 июня 2019

Вы можете использовать $ trim , чтобы удалить все символы, которые не представляют цифры, а затем запустить оператор $ toLong .Оба оператора доступны в MongoDB 4.0 или новее.Попробуйте:

db.collection.aggregate([
    {
        $addFields: {
            last_modification: {
                $trim: {
                    input: "$last_modification",
                    chars: "/Date()"
                }
            }
        }
    },
    {
        $addFields: {
            last_modification: {
                $toLong: "$last_modification"
            }
        }
    },
    { $out: "collection" }
])

MongoDB Playground

РЕДАКТИРОВАТЬ: Вы можете использовать $ out для изменения существующей коллекции

...