Добавить значение по центру в столбце в CSV генерировать рельсы

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

Единственное, что я хочу добавить здесь, это то, что вы также можете вернуть объект Date из структуры агрегации таким подходом, в отличие от «числовой» метки времени. Это лишь небольшая дополнительная математика на тех же принципах, используя $add :

db.collection.aggregate([
    { "$group": {
        "_id": {
            "$add": [
                { "$subtract": [
                    { "$subtract": [ "$current_date", new Date(0) ] },
                    { "$mod": [ 
                        { "$subtract": [ "$current_date", new Date(0) ] },
                        1000 * 60 * 15
                    ]}
                ] },
                new Date(0)
            ]
        },
        "count": { "$sum": 1 }
    }}
])

Контексты Date(0) в JavaScript здесь представляют ту же самую «эпоху» в более короткая форма, так как 0 миллисекунд от эпохи - эпоха. Но главное, что когда «добавление» к другому объекту даты BSON выполняется с числовым идентификатором, тогда обратное к описанному условию истинно, и конечный результат на самом деле теперь является Date.

Все драйверы вернут родной тип Date на свой язык с помощью этого подхода.

1
задан Muhammad Ali Hafeez 16 January 2019 в 13:30
поделиться

2 ответа

Это странный запрос, поскольку .CSV не является уровнем представления. Отформатированные значения обычно не хранятся в .CSV, но я полагаю, что нет никаких причин, по которым они не могут быть.

Должен помочь метод Руби center.

"hello".center(20) #=> "       hello        "

Тогда просто поместите центрированное значение в вас .CSV.

0
ответ дан Dan 16 January 2019 в 13:30
поделиться

Я думаю, что это невозможно, поскольку CSV - это просто файл, разделенный запятыми, и не содержащий никаких данных о стилях. Кроме того, вы можете добавить пустой столбец (столбцы), чтобы имитировать это поведение.

0
ответ дан M. Habib 16 January 2019 в 13:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: