0

I'm inserting data in mongodb with node js and i'm getting this error

quote MongoError: cannot index parallel arrays [specification] [weightAndDimension]

data is inserting in below form



   weightAndDimension: [
    '{"name":"Item Height - In","value":"10"}',
    '{"name":"Item Weight - Lbs","value":"10"}',
    '{"name":"Item Width - in","value":"10"}',
    '{"name":"Item Length - in","value":"19"}'
  ],
  indoor: 'false',
  weight: '10',
  length: '19',
  width: '10',
  height: '10',
  specification: [
    '{"name":"Sales UOM","value":"Each"}',
    '{"name":"Proposition 65 Compliance (Yes/No)","value":"No"}',
    '{"name":"Collection Name","value":"Falling Stars"}',
    '{"name":"Style 1","value":"Modern"}',
    '{"name":"Item Color","value":"Chrome"}',
    '{"name":"Finish 1","value":"Crystal"}',
    '{"name":"Finish 2","value":""}',
    '{"name":"Assembly Required (Yes/No)","value":"Yes"}',
    '{"name":"Item Height (in)","value":16}',
    '{"name":"Item Width (in)","value":8.5}',
    '{"name":"Item Diameter (in)","value":8.5}',
    '{"name":"Item Weight (lbs)","value":9}',
    '{"name":"Outdoor Use (Yes/No)","value":"No"}',
    '{"name":"Cord Length (in)","value":75}',
    '{"name":"Furniture Stackable (Yes/No)","value":"No"}',
    '{"name":"Frame Material","value":"Plated Steel"}',
    '{"name":"Upholstered (Yes/No)","value":"No"}'
  ] 
Liam
  • 27,717
  • 28
  • 128
  • 190
Tahir
  • 15
  • 9

1 Answers1

1

The only option available to you is to store the every unique pair as a single array element. So rather than :

weightAndDimension: [
    '{"name":"Item Height - In","value":"10"}',
    '{"name":"Item Weight - Lbs","value":"10"}',
    '{"name":"Item Width - in","value":"10"}',
    '{"name":"Item Length - in","value":"19"}'
  ],
  indoor: 'false',
  weight: '10',
  length: '19',
  width: '10',
  height: '10',
  specification: [
    '{"name":"Sales UOM","value":"Each"}',
    '{"name":"Proposition 65 Compliance (Yes/No)","value":"No"}',
    '{"name":"Collection Name","value":"Falling Stars"}',
    '{"name":"Style 1","value":"Modern"}',
    '{"name":"Item Color","value":"Chrome"}',
    '{"name":"Finish 1","value":"Crystal"}',
    '{"name":"Finish 2","value":""}',
    '{"name":"Assembly Required (Yes/No)","value":"Yes"}',
    '{"name":"Item Height (in)","value":16}',
    '{"name":"Item Width (in)","value":8.5}',
    '{"name":"Item Diameter (in)","value":8.5}',
    '{"name":"Item Weight (lbs)","value":9}',
    '{"name":"Outdoor Use (Yes/No)","value":"No"}',
    '{"name":"Cord Length (in)","value":75}',
    '{"name":"Furniture Stackable (Yes/No)","value":"No"}',
    '{"name":"Frame Material","value":"Plated Steel"}',
    '{"name":"Upholstered (Yes/No)","value":"No"}'
  ] 

you store

 weightAndSpecification: [
    ['{"name":"Item Height - In","value":"10"}','{"name":"Sales UOM","value":"Each"}'],
    ['{"name":"Item Weight - Lbs","value":"10"}','{"name":"Proposition 65 Compliance (Yes/No)","value":"No"}'],
    ['{"name":"Item Width - in","value":"10"}', '{"name":"Collection Name","value":"Falling Stars"}'],
    ['{"name":"Item Length - in","value":"19"}','{"name":"Style 1","value":"Modern"}'],
    ['{}','{"name":"Item Color","value":"Chrome"}']
... and so on
  ],
  indoor: 'false',
  weight: '10',
  length: '19',
  width: '10',
  height: '10'

Obviously this has a few downsides so it really depends on your specific usecase whether or not this is an appropriate workaround. You can also refer to How do I index two arrays in MongoDB?

melarKode
  • 87
  • 1
  • 10