我有工作脚本存储我在mongoDB中创建的html表单。它很棒。但是,我无法搜索我在mongo中放置的任何数据,因为我没有索引。
我意识到我可以从控制台创建索引,但是为了让我的系统以我们需要的方式工作,我真的需要在存储数据时创建索引。所以,我需要将代码放在实际创建代码9的javascript中,直接使用node.js。
我尝试了以下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 :(得分:0)
您需要在集合上调用ensureIndex
:
collection.ensureIndex({ "document": 1 }, function (err, indexName) {
db.close();
});