dimanche 26 mai 2019

Automatic Seeding or Test Data Generation of a Property Value for MongoDB

I'm using JSON Generator https://next.json-generator.com to seed my MongoDB. I'm finding trouble to generate a random set (from one to six) of colors out of the predefined group.

I've succeded to generate all of the other property values but color. I need for the availableColors key to generate a random variable number of colors out of a predefined set of six: "blue", "brown", "green", "white", "yellow", "gray".

Here is the URL to the online generator where it is possible to real-time edit it: https://next.json-generator.com/E1g60a1pL

Here is the code:

[
  {
    'repeat(5, 10)': {
      id: '',
      name: '',
      price: '',
      availableColors: (colors) => {
               var condition = '';
               var color = [];
               for (j = 0; j < condition+1; j++)
               {color [j] = '';}
               let unique_array = [];
               for(let i = 0;i < color.length; i++) {
                   if(unique_array.indexOf(color[i]) == -1){
                      unique_array.push(color[i]);
                }
               }
               return unique_array;
},
      weight: '',
      inStock: ''
    }
  }
]

Here is the result I get:

[
  {
    "id": "5ce82b1302c9777aac5fd681",
    "name": "Blake",
    "price": "$389.53",
    "availableColors": [],
    "weight": "3753.22",
    "inStock": 449
  },
  {
    "id": "5ce82b137ab9fe24eda22714",
    "name": "Felicia",
    "price": "$3,190.01",
    "availableColors": [],
    "weight": "3797.51",
    "inStock": 1288
  },
  {
    "id": "5ce82b135414eb7550aee368",
    "name": "Bettye",
    "price": "$227.41",
    "availableColors": [],
    "weight": "2182.52",
    "inStock": 1288
  },
  {
    "id": "5ce82b13f751e63a8506fbf2",
    "name": "Mullen",
    "price": "$3,306.81",
    "availableColors": [],
    "weight": "694.51",
    "inStock": 821
  },
  {
    "id": "5ce82b130544c7c08086a6bc",
    "name": "Angelita",
    "price": "$734.90",
    "availableColors": [],
    "weight": "3.44",
    "inStock": 226
  },
  {
    "id": "5ce82b130d9e2fc4c2a21e22",
    "name": "Mcknight",
    "price": "$3,582.76",
    "availableColors": [],
    "weight": "1183.82",
    "inStock": 1917
  },
  {
    "id": "5ce82b13fb509ee9c384a096",
    "name": "Nannie",
    "price": "$3,479.29",
    "availableColors": [],
    "weight": "754.85",
    "inStock": 716
  },
  {
    "id": "5ce82b13881cb29ec7a1772b",
    "name": "Sutton",
    "price": "$1,726.83",
    "availableColors": [],
    "weight": "1382.76",
    "inStock": 1911
  },
  {
    "id": "5ce82b1386ad13bffcf0923b",
    "name": "Maria",
    "price": "$1,679.58",
    "availableColors": [],
    "weight": "1106.28",
    "inStock": 5
  },
  {
    "id": "5ce82b13fccd87dbe6451971",
    "name": "Noble",
    "price": "$309.25",
    "availableColors": [],
    "weight": "1657.83",
    "inStock": 235
  }
]

I expect the "availableColors" of any document to be an array of one to six predefined colors. Any idea?

Aucun commentaire:

Enregistrer un commentaire