通过Node.js插入到MongoDB中

我对Node.js和MongoDB都是新手,但是我打算创build一个非常基本的基于实时地理位置的Web应用程序。 这里是我试图弄清楚Node和MongoDB如何交互:

var mongo = require('mongodb'); var db = new mongo.Db('test', new mongo.Server('localhost',22892, {}), {}); db.open(function(){}); db.collection('docs', function(err,collection){ doc = {"foo":"bar"}; collection.insert(doc, function(){}); }); 

我可以看到这是连接:

 Thu Apr 14 15:24:12 [initandlisten] connection accepted from 127.0.0.1:46968 #26 Thu Apr 14 15:24:12 [conn26] building new index on { _id: 1 } for test.docs Thu Apr 14 15:24:12 [conn26] done for 0 records 0secs 

但是它不会将任何文档插入到数据库中。 谁能告诉我我做错了什么?

谢谢

 db.open(function(err, client){ client.createCollection("docs", function(err, col) { client.collection("docs", function(err, col) { for (var i = 0; i < 100; i++) { col.insert({c:i}, function() {}); } }); }); }); 

你忘了在你opencallback中做任何事情。 这是非常重要的,否则你的代码在连接到数据库之前就会运行。 你必须做一切asynchronous。 如果不存在,最好创build集合。

看看在github页面上的大量例子

现在看起来像回拨意大利面条,所以我们使用像Step这样的stream量控制来使它更漂亮。

 Step( function() { db.open(this); }, function(err, client) { client.createCollection("docs", this); }, function(err, col) { for (var i = 0; i < 100; i++) { col.insert({c:i}); } } );