Как хранить многомерный массив в mongodb - PullRequest
0 голосов
/ 15 апреля 2020

У меня ниже массива

[
  Sheet1: [
    headers: [
      'First Name New',
      'Last Name',
      'Gender',
      'Country',
      'Age',
      'Date',
      'Id'
    ],
    data_count: 10
  ],
  Sheet2: [
    headers: [
      'First Name New',
      'Last Name',
      'Gender',
      'Country',
      'Age',
      'Date',
      'Id'
    ],
    data_count: 10
  ]
]

Я хочу сохранить его в mongodb. Но это не было сохранено. Сохраняется пустой массив

1 Ответ

0 голосов
/ 16 апреля 2020

В документе MongoDB вы можете хранить два типа составных полей : (1) массивы и (2) документы (иногда называемые вложенными или вложенными документами). Массивы могут встраивать другие массивы и / или поддокументы, субдокументы и могут включать в себя массивы и / или субдокументы.

Для пример , следующий документ имеет все поля в качестве типа массива (кроме _id):

{
        "_id" : 1,
        "arr_of_numbers" : [
                1,
                2,
                3,
                100
        ],
        "arr_of_documents" : [
                {
                        "name" : "John",
                        "country" : "USA"
                },
                {
                        "name" : "Krishna",
                        "country" : "India"
                }
        ],
        "arr_of_arrays" : [
                [
                        1,
                        2,
                        3
                ],
                [
                        11,
                        21
                ]
        ],
        "arr_of_documents_with_arrays" : [
                {
                        "fld1" : "string-1",
                        "fld2" : [
                                {
                                        "name" : "John",
                                        "country" : "USA"
                                },
                                {
                                        "name" : "Krishna",
                                        "country" : "India"
                                }
                        ]
                },
                {
                        "fld1" : "string-2",
                        "fld2" : [
                                {
                                        "name" : "Ivan",
                                        "country" : "Bulgaria"
                                },
                                {
                                        "name" : "Vladi",
                                        "country" : "Russia"
                                }
                        ]
                }
        ]
}


Рассмотрим ваш массив :

[
  Sheet1: [
    headers: [
      'First Name New',
      'Last Name',
      'Gender',
      'Country',
      'Age',
      'Date',
      'Id'
    ],
    data_count: 10
  ],
  Sheet2: [
    headers: [
      'First Name New',
      'Last Name',
      'Gender',
      'Country',
      'Age',
      'Date',
      'Id'
    ],
    data_count: 10
  ]
]

Ваш массив не может быть сохранен как есть . Как показывает мой пример, вы должны учитывать массив с вложенными документами. Итак, ваш документ может иметь что-то вроде следующего:

{
   "_id":1,
   "some_field":"some value",
   "my_multi_array":[
      {
         "Sheet1":{
            "headers":[
               "First Name New",
               "Last Name",
               "Gender",
               "Country",
               "Age",
               "Date",
               "Id"
            ],
            "data_count":10
         }
      },
      {
         "Sheet2":{
            "headers":[
               "First Name New",
               "Last Name",
               "Gender",
               "Country",
               "Age",
               "Date",
               "Id"
            ],
            "data_count":10
         }
      }
   ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...