MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Objek induk jalur JSON, atau kueri MongoDB yang setara

Tak lama setelah saya menambahkan hadiah saya sendiri, saya menemukan solusinya. Masalah saya memiliki struktur dasar yang sama, yaitu pengenal induk, dan beberapa pasangan kunci/nilai anak nomor N untuk peringkat (kualitas, nilai, dll...).

Pertama, Anda memerlukan langkah Input JSON yang mendapatkan array SKU, Name, dan size_break_costs, semuanya sebagai Strings. Bagian yang penting adalah size_break_costs adalah sebuah String, dan pada dasarnya hanyalah sebuah array JSON yang dirangkai. Pastikan bahwa di bawah tab Konten dari Input JSON, "Abaikan jalur yang hilang" dicentang, jika Anda mendapatkannya dengan larik kosong atau bidang tidak ada karena alasan tertentu.

Untuk bidang Anda, gunakan:

Name           | Path               | Type
ProductSKU     | $.sku              | String
ProductName    | $.name             | String
SizeBreakCosts | $.size_break_costs | String

Saya menambahkan blok "Filter baris" setelah langkah ini, dengan kondisi "SizeBreakCosts IS NOT NULL", yang kemudian diteruskan ke blok Input JSON kedua. Blok JSON kedua ini, Anda harus mencentang "Sumber ditentukan dalam bidang?", dan mengatur nilai "Dapatkan sumber dari bidang" ke "SizeBreakCosts", atau apa pun yang Anda beri nama di blok Input JSON pertama.

Sekali lagi, pastikan "Abaikan jalur yang hilang" dicentang, serta "Abaikan file kosong". Dari blok ini, kami ingin mendapatkan dua bidang. Kita sudah memiliki ProductSKU dan ProductName dengan setiap baris yang diteruskan, dan langkah Input JSON kedua ini selanjutnya akan membaginya menjadi berapa banyak baris dalam JSON input SizeBreakCosts. Untuk bidang, gunakan:

Name     | Path           | Type
Quantity | $.[*].quantity | Integer
Size     | $.[*].size     | String

Seperti yang Anda lihat, jalur ini menggunakan "$.[*].FieldName", karena string JSON yang kami masukkan memiliki larik sebagai item root, jadi kami mendapatkan setiap item dalam larik itu, dan menguraikan kuantitas dan ukuran.

Sekarang setiap baris harus memiliki SKU dan nama dari objek induk, dan jumlah dan ukuran dari setiap objek anak. Membuang contoh ini ke file teks, saya mendapatkan:

ProductSKU;ProductName;Size;Quantity
SK3579;Authority;S; 80
SK3579;Authority;M; 14
SK3579;Authority;L; 55



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pengecualian saat menghubungkan ke mongodb di spark

  2. cara mengonversi string ke nilai numerik di mongodb

  3. Agregasi Mongo, memproyeksikan subbidang dari elemen pertama dalam array

  4. mongodb:temukan ringkasan catatan

  5. MongoDB $weeklyUpdate #65 (15 April 2022):Waktu GDELT, Mongoose, &Hackathon!