【问题标题】:Retrieval of inserted MongoDB data via Nodejs通过 Nodejs 检索插入的 MongoDB 数据
【发布时间】:2011-08-25 16:46:38
【问题描述】:

我正在使用 Nodejs 通过 MongoDB 插入一些数据:

var db = new mongo.Db("mydb", new mongo.Server("localhost", '27017', {}), {});
db.open(function() {
    db.collection("entry", function(error, collection) {
        data = {
            "time":(new Date()).getTime()
        }

        collection.insert(data, function() {
            console.log("saved", arguments);
        });
    });
});

但是,如果我这样做,我什至看不到数据库:

$ mongo localhost
> db.getCollectionNames();
[ "system.indexes" ]

所以我通过以下方式手动添加了集合:

> db.createCollection('mydb');
{ "ok" : 1 }

然后我看到了:

> db.getCollectionNames();
[ "mydb", "system.indexes" ]

但如果我运行:

> db.mydb.find().count()

我会看到:0

当然,我会在运行节点脚本后尝试db.mydb.find().count(),但仍然得到0。我怀疑我在某处遗漏了重要的部分。

我还应该注意,当我运行我的节点脚本时,我确实看到了“已保存”和函数中的一些参数,所以看起来数据正在进入,我只是不确定如何查看它。

【问题讨论】:

    标签: mongodb node.js


    【解决方案1】:

    看起来您在示例代码和问题描述中混淆了数据库和集合的概念。而不是 db.getCollectionNames(),使用它来查找 MongoDB 服务器上可用的数据库:

    显示数据库

    您的代码正在向“mydb”数据库中的“entry”集合添加一条记录。连接mongo shell后,尝试:

    使用我的数据库

    然后:

    db.entry.find()

    应该显示您新创建的记录。

    您可以查看http://www.mongodb.org/display/DOCS/DBA+Operations+from+the+Shell 以获取有用的 shell 命令的完整列表。

    【讨论】:

    • 我曾经看到过数据库show dbs -- 现在我知道我哪里出错了。感谢您的澄清。
    猜你喜欢
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    相关资源
    最近更新 更多