我使用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。我怀疑我在什么地方遗漏了重要的部分。
我还应该注意,当我运行我的节点脚本时,我确实看到了“已保存”和函数中的一些参数,所以看起来数据正在进入,我只是不确定如何看到它。
发布于 2011-08-26 02:19:58
看起来您在示例代码和问题描述中混淆了数据库和集合的概念。不要使用db.getCollectionNames(),而是使用下面的代码来查找MongoDB服务器上可用的数据库:
显示dbs
您的代码正在向"mydb“数据库中的"entry”集合添加一条记录。连接到mongo shell后,尝试:
使用mydb
然后:
db.entry.find()
它应该会显示您新创建的记录。
您可以在http://www.mongodb.org/display/DOCS/DBA+Operations+from+the+Shell上查看有用的shell命令的完整列表。
https://stackoverflow.com/questions/7194174
复制相似问题