无法使用node.js和Mongodb包查询MongoDB数据库

我不能用node.js和Mongodb包查询我的MongoDB数据库。

我已经成功插入2个对象,如下所示:

var mongo = require("mongodb"); var host = "127.0.0.1"; var port = mongo.Connection.DEFAULT_PORT; var db = new mongo.Db("nodejs-introduction", new mongo.Server(host, port, { }), {safe: true}); console.log(host); db.open(function(error) { console.log("We are connected ", + host + ':' + port); db.collection("user", { w:1 }, function(error, collection){ console.log("We have the collection"); collection.insert({ id: "1", name: "Foo Bar", twitter: "Foo_Bar", email: "info@nfoobar.com" }, {w:1}, function() { console.log("Succesfully inserted Foo Bar"); }); collection.insert({ id: "2", name: "Bar Foo", twitter: "Bar_Foo", email: "info@tbarfoo.com" }, {w:1}, function() { console.log("Succesfully inserted Bar Foo"); }); }); }); 

一切顺利,没有错误。 但是,如果我想查询这样的项目:

 var mongo = require("mongodb"); var host = "127.0.0.1"; var port = mongo.Connection.DEFAULT_PORT; var db = new mongo.Db("nodejs-introduction", new mongo.Server(host, port, { }), {safe: false}); console.log(host); db.open(function(error) { console.log("We are connected ", + host + ':' + port); //collection is sort of table db.collection("user", function(error, collection){ console.log("We have the collection"); collection.find({ "id": "1" }, function(error, cursor){ cursor.toArray(function(error, users){ if (users.length == 0) { console.log("no user found"); } else { console.log("Found a user", users[0]); } }); }); }); }); 

然后我得到以下错误:

 127.0.0.1 We are connected NaN:27017 We have the collection /path/to/query.js:14 if (users.length == 0) { ^ TypeError: Cannot read property 'length' of null 

所以我明白的是,variables的用户是空的,它不能find任何匹配,但我不知道为什么。 我做错了什么?

find了解决办法。 Mongodb没有运行。 如果Mongodb没有运行,我可以如何插入到MongoDB中?