1

picture of the problem:

enter image description here

I install the csv file without any problem, but it sees array as a string. The category must be an array.

sample code

  {  "_id":{"$oid":"609196655b92b7164b2cb016"},
     "body":"test",
     "category":"["Aksiyon Oyunları","Beceri Oyunları"]",
     "date":"1617272388425",
      "gamelink":"ssdsd",
      "imglink":"deneme görseli",
      "status":"published", 
      "title":"BUNU YAPIN TREN!",
      "slug":"bunu-yapin-tren!" }
prasad_
  • 12,755
  • 2
  • 24
  • 36
  • See this similar post with an answer: [Import csv data as array in mongodb using mongoimport](https://stackoverflow.com/questions/44622394/import-csv-data-as-array-in-mongodb-using-mongoimport) – prasad_ May 05 '21 at 05:14

1 Answers1

0
    const postSchema = new Schema({
        title: {
            type: String,
            required: true
        },
        category: {
            type: [String],
            required: true
        }
    });

module.exports = new model('posts', postSchema);

schema and this code with node js

mongoose
    .connect(MONGO_URL)
    .then(() => console.log('DB Connected'))
    .catch(err => console.log("Fail to connect mongodb ", err));

    var ops = [];
    post_schema.find({ "category": { "$type": 2} }, function(err, arr) {
        arr.forEach(doc => {
            let str = doc.category+``
            str = str.split(',');
            const arr = str.map(e=>e.replace(/"|\[|\]|\\/gm,'').toString())
            ops.push({
              "updateOne": {
                "filter": { "_id": doc._id },
                "update": { "$set": { "category": arr } }
              }
            });
            if ( ops.length > 0 ) {
                console.log("BULKWRITE")
              post_schema.bulkWrite(ops);
              ops = [];
            }      
          }); 
    })