Перезапись поля новыми данными - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь перезаписать createdate и endDate из строки типа в тип даты.

enter image description here

У меня есть код, чтобы заменить его на строку к дате (здесь ответили Конвертировать дату в строку во вложенном массиве в mongodb )

Cases.aggregate([
  { "$addFields": {
    "cases": {
      "$map": {
        "input": "$cases",
        "in": {
          "$mergeObjects": [
            "$$this",
            {
              "createddate": {
                "$cond": [
                  { "$eq": ["$$this.createddate", " "] },
                  null
                  { "$dateFromString": { "dateString": "$$this.createddate" } }
                ]
              },
              "endDate": {
                "$cond": [
                  { "$eq": ["$$this.endDate", " "] },
                  null
                  { "$dateFromString": { "dateString": "$$this.endDate" } }
                ]
              }
            }
          ]
        }
      }
    }
  }}
])

После этого он показывает даты в виде объекта даты, однако, как только я обновлю sh В документе дата снова возвращается в строку.

Как я могу сохранить его, чтобы он сохранял (перезаписывал) значение.

Спасибо

1 Ответ

0 голосов
/ 27 января 2020

Если кто-то еще захочет это сделать, я нашел ответ.

db.cases.aggregate([
    { $match: { companyID: 218 }},
    { "$addFields": {
      "cases": { "$map": { "input": "$cases", "in": { "$mergeObjects": [ "$$this", {
        "createddate": {
          "$cond": [
            { "$eq": ["$$this.createddate", " "] },
            null,
            { "$dateFromString": { "dateString": "$$this.createddate" } }
          ]
        },
        "endDate": {
          "$cond": [
            { "$eq": ["$$this.endDate", " "] },
            null,
            { "$dateFromString": { "dateString": "$$this.endDate" } }
          ]
        }}]}}}
    }},
    { "$out": "cases" }
  ])

Благодаря @ as sh из вопроса Сохранение данных о местоположении в документе Mongodb

...