2013-09-21 25 views
1

我有一個工作腳本,它存儲我在mongoDB中創建的html表單。它工作真棒。但是,我無法搜索我放置在mongo中的任何數據,因爲我沒有索引。用JavaScript索引mongo數據庫

我意識到我可以從控制檯創建索引,但是爲了讓我的系統以我們需要的方式工作,我真的需要在數據存儲時創建索引。所以,我需要將代碼放在實際上使用node.js創建代碼9或者直接使用javascript的代碼中)。

我試了下面的JavaScript(與node.js),但它似乎不工作。

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(); 
     }); 
    }); 
    }); 
}); 

});

回答

0

你需要調用ensureIndex的集合:

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