2013-09-21 10 views
1

J'ai un script de travail qui stocke les formulaires html que j'ai créés dans mongoDB. Cela fonctionne génial. Cependant, je ne peux pas rechercher les données que je place dans mongo, parce que je n'ai pas d'index. Je réalise que je pourrais créer l'index à partir de la console, mais pour que mon système fonctionne comme nous le souhaitons, j'ai vraiment besoin que l'index soit créé quand les données sont stockées. Donc, j'ai besoin de placer du code dans le javascript qui crée réellement le code 9using node.js ou directement).index un mongo db avec javascript

J'ai essayé le javascript suivant (avec node.js), mais cela ne semble pas fonctionner.

app.post('/:db/:collection/formSubmit', function(req, res) { 
    var json = form2json.transform(req.rawBody);  
    var db = new mongo.Db(req.params.db, new mongo.Server(config.db.host, config.db.port,mongoOptions)); 
     db.open(function(err, db) { 
     db.authenticate(config.db.username, config.db.password, function() { 
     db.collection(req.params.collection, function(err, collection) { 
     collection.insert(Array.isArray(json) ? json[0] : json, function(err, docs) { 
    res.header('Content-Type', 'application/json'); 
    if(req.is('application/xml')) { 
    res.send('<ok>1<ok>') 
    } else { 
    es.send(json, 201);  
    } 
// my attempt to create an index while posting a form follows 
    db.core.ensureIndex({ "document": 1 })  
     db.close(); 
     }); 
    }); 
    }); 
}); 

});

Répondre

0

Vous devez appeler ensureIndex sur la collection:

collection.ensureIndex({ "document": 1 }, function (err, indexName) {  
    db.close(); 
});