title: Mongoose not creating text indexes for multiple fields
body: <p>I have a basic mongoose schema that requires me to create a text index on two of its fields: name &amp; description. </p>
  
  <p>Here are my mongoose connection options:</p>
  
  <pre><code>mongoose.set('useFindAndModify', false);
  mongoose.set('useCreateIndex', true);
  mongoose.set('useNewUrlParser', true);
  
  const mongoOptions = {
    useNewUrlParser: true,
    autoIndex: false,
    reconnectTries: Number.MAX_VALUE,
    reconnectInterval: 500,
    poolSize: 10,
    bufferMaxEntries: 0
  };
  
  mongoose.connect(MONGOURI, mongoOptions);
  </code></pre>
  
  <p>Here is my schema:</p>
  
  <pre><code>const ASchema = new mongoose.Schema({
    name: {type: String, text: true, index: true, required: true, maxlength: [100, 'Name must be less than 100 characters']},
    description: {type: String, text: true, index: true, required: true, maxlength: [500, 'Description must be less than 500 characters']},
    meta: {tags: [String]}
  });
  
  ASchema.options.autoIndex = true;
  
  ASchema.index({
    name: 'text',
    description: 'text',
  }, {
    weights: {
      name: 5,
      description: 3,
    },
  });
  
  var A = mongoose.model("AModel", ASchema);
  
  module.exports = A;
  </code></pre>
  
  <p>For some reason with the query, I create with:</p>
  
  <pre><code>app.post('/search', (req, res, next) =&gt; {
    let query = req.query.q
    console.log(query);
    A.find({
      $text: { $search: query }
    }, { score: { $meta: "textScore" } }
    ).sort( { score: { $meta: "textScore" } } )
    .then(q =&gt; {
      console.log(q); res.send(q)
    })
    .catch(next)
  });
  </code></pre>
  
  <p>I will only ever get the results if my query string is within the <strong>name</strong> field.
  Yet when I enter a sentence or word <strong>ONLY</strong> present in the description I am returned an empty ARRAY. </p>
  
  <p>calling <code>db.amodels.getIndexes()</code> on my mongo shell returns the following:</p>
  
  <pre><code>[
          {
                  "v" : 2,
                  "key" : {
                          "_id" : 1
                  },
                  "name" : "_id_",
                  "ns" : "adatabase.amodels"
          },
          {
                  "v" : 2,
                  "key" : {
                          "_fts" : "text",
                          "_ftsx" : 1
                  },
                  "name" : "name_text",
                  "ns" : "adatabase.amodels",
                  "background" : true,
                  "weights" : {
                          "name" : 1
                  },
                  "default_language" : "english",
                  "language_override" : "language",
                  "textIndexVersion" : 3
          }
  ]
  </code></pre>
  
  <p>I can see from this, as well as my mlab instance, that my <strong>compound index</strong> has not been created, nor has the proper weighting been assigned.</p>
  
  <p>calling <code>db.amodels.ensureIndex({"description": "text"})</code></p>
  
  <p>returns a <code>IndexOptionsConflict</code></p>
  
  <pre><code>{
          "operationTime" : Timestamp(1565476058, 1),
          "ok" : 0,
          "errmsg" : "Index: { v: 2, key: { _fts: \"text\", _ftsx: 1 }, name: \"description_text\", ns: \"adatabase.amodels\", weights: { description: 1 }, default_language: \"english\", language_override: \"language\", textIndexVersion: 3 } already exists with different options: { v: 2, key: { _fts: \"text\", _ftsx: 1 }, name: \"name_text\", ns: \"adatabase.amodels\", background: true, weights: { name: 1 }, default_language: \"english\", language_override: \"language\", textIndexVersion: 3 }",
          "code" : 85,
          "codeName" : "IndexOptionsConflict",
          "$clusterTime" : {
                  "clusterTime" : Timestamp(1565476058, 1),
                  "signature" : {
                          "hash" : BinData(0,"FMoSr4UQZWqocfrRTFvGoa62TsY="),
                          "keyId" : NumberLong("6723301754588364801")
                  }
          }
  }
  </code></pre>
  
  <p>Have I messed up somewhere simply? I sure do hope so.</p>