MongoDB Compass: как создать «_id» для вложенных объектов при вставке документа - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь вставить некоторые данные в мой MongoDB API, используя MongoDB Compass. Моя проблема в том, что только внешний объект получает автоматически "_id". Таким образом, вложенные объекты в сообщениях ect не имеют _id. Можно ли генерировать идентификаторы для всех объектов?

Это демонстрационная версия данных, которые я вставляю:

{
    "company_name":"Company name",
    "columns":[
        {
            "name":"Opportunities",
            "percentage":{
                "$numberDecimal":"0"
            },
            "total":{
                "$numberDecimal":"0"
            }
        },
        {
            "name":"Prospects",
            "percentage":{
                "$numberDecimal":"0.25"
            },
            "total":{
                "$numberDecimal":"0"
            }
        },
        {
            "name":"Proposals",
            "percentage":{
                "$numberDecimal":"0.5"
            },
            "total":{
                "$numberDecimal":"0"
            }
        },
        {
            "name":"Presentations",
            "percentage":{
                "$numberDecimal":"0.75"
            },
            "total":{
                "$numberDecimal":"0"
            }
        },
        {
        "name":"Won",
            "percentage":{
                "$numberDecimal":"1"
            },
            "total":{
                "$numberDecimal":"0"
            }
        },
        {
        "name":"Lost",
            "percentage":{
                "$numberDecimal":"1"
            },
            "total":{
                "$numberDecimal":"0"
            }
        },
        {
            "name":"No Opportunity",
            "percentage":{
                "$numberDecimal":"1"
            },
            "total":{
                "$numberDecimal":"0"
            }
        }
    ],
    "board_posts":[
        {
          "company_type": "Surveying",
          "lines_of_business": "Strategic Advisors",
          "author_id":
          {
            "$oid": "5ea02eaa1c9d440000911537"
          },
          "division": "Advisory"
        },
        {
          "company_type": "Damage Management",
          "lines_of_business": "Strategic Sales",
          "author_id":
          {
            "$oid": "5ea02eaa1c9d440000911537"
          },
          "division": "Advisory"
        },
        {
          "company_type": "Claims Management",
          "lines_of_business": "Strategic Sales",
          "author_id":
          {
            "$oid": "5ea02eaa1c9d440000911537"
          },
          "division": "Advisory"
        }
    ],
    "divisions":[
        {
            "name":"Advisory"
        },
        {
            "name":"M&A"
        },
        {
            "name":"Partnerships"
        }
    ]
}

"_id" будет генерировать внешний объект для пример:

{
    "_id":{
        "$oid": "5ea02eaa1c9d440000919999"
    },
    "company_name":"Company name",
    "columns":[ objects ],
    "board_posts":[ objects ],
    "divisions":[ objects ]
}

Но я хочу, чтобы _id генерировалось для каждого объекта внутри столбцов, board_posts, а также делений.

...