Mongodb: несколько объектов в массиве

Я новичок в Mongodb, и мне было поручено извлечь данные из mongoDB, создать csv и загрузить его в базу данных Oracle. Ниже данные в Mongodb

{{
"_id":"69ajdslsdfdksjfef9",
"col1":"456780",
"refNum":"ref001"
}
{
  "clients":{
              "CLI_1": "9876547390",
              "CLI_2": "fsdfasl"
}
{"names":[
{
  "first":"dfsakfj",
  "middle":"hgfgas",
  "last":"komdssdfsd"
},
{
  "first":"dfskdajf",
  "middle": "fgjfgjfl",
  "last": "ghfghsdklfg"
}]}

second row from collection

{{
"_id":"69ajdslsdfdksjfef9",
"col1":"456780",
"refNum":"ref001"
}
{
  "clients":{
              "CLI_1": "9876547390",
              "CLI_2": "fsdfasl"
}
{"names":[
{
  "first":"dfsakfj",
  "middle":"hgfgas",
  "last":"komdssdfsd"
}]}

Я использую утилиту pymongo для запроса и создания фрейма данных перед созданием файла csv. Тем не менее, я могу создать фрейм данных, но не могу правильно анализировать «имена», поскольку они несовместимы при сравнении между строками. Может ли кто-нибудь поделиться, как разобрать и создать csv с полями _id, first, middle, last

Благодарю вас

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
0
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Существует конвейер агрегации mongodb с именем $unwind, который может помочь вам с задачей выравнивания массива имен, чтобы он подходил для вывода csv следующим образом:

 db.collection.aggregate([
 {
   $unwind: "$names"
 },
 {
   $project: {
    _id: 1,
    first: "$names.first",
    middle: "$names.middle",
    last: "$names.last"
   }
 }
])// _id, first, middle, last

детская площадка

Другие вопросы по теме