node.js - mongodb在nodejs集合中找不到

标签 node.js mongodb

我连接到数据库并接收客户端。 下一步是创建一个集合(表)。

db.createCollection("test", function(err, collection){    //I also tried db.collection(...
    if(collection!=null)
    {   
        collection.insert({"test":"value"}, function(error, model){console.log(model)});
    }
    else if(err!=null)
        console.log(err);
});

现在我将创建一个集合“test”以及其中的文档(行)“test”。

接下来是获取集合的内容:

db.test.find({});    //An empty query document ({}) selects all documents in the collection

这里我收到错误:无法调用 undefined 的“find”。那么,我做错了什么?

编辑:我以这种方式连接到数据库:

var mongoClient = new MongoClient(new Server("localhost", 27017, {native_parser:true}));
mongoClient.open(function(err,mongoclient){
if(mongoclient!=null)
{
    var db = mongoclient.db("box_tests");
    startServer(db);
}
else if(err!=null)
    console.log(err);
});

最佳答案

在 mongo 命令行中,您可以使用db.test.find({}),但在 javascript 中,到目前为止还没有办法复制该接口(interface)(也许有一天可以使用 Harmonies 代理)。

因此它会抛出错误无法调用未定义的“find”,因为数据库中没有测试

mongodb的node.js驱动的api是这样的:

db.collection('test').find({}).toArray(function (err, docs) {
  //you have all the docs here.
}); 

另一个完整的例子:

//this how you get a reference to the collection object:
var testColl = db.collection('test');

testColl.insert({ foo: 'bar' }, function (err, inserted) {
  //the document is inserted at this point.

  //Let's try to query
  testColl.find({}).toArray(function (err, docs) {
    //you have all the docs in the collection at this point
  }); 
}); 

还要记住,mongodb 是无模式的,您不需要提前创建集合。很少有像创建上限集合这样的具体情况以及其他一些情况。

关于node.js - mongodb在nodejs集合中找不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698934/

相关文章:

javascript - 无法访问 NodeJS 中另一个模块的功能

jquery - 让 Node.js 中的 http.request 适用于浏览器

node.js - "cant set headers once they are sent"无缘无故,不使用 .next() Nodejs

node.js - 在 Node 中返回大量数据的良好实践

mongodb - Mongod 常驻内存使用率低

javascript - 如何通过ajax调用点击jstree最后一个 Node 填充数据

javascript - Mocha 和诗乃的方法 spy

node.js - MongoDB 创建的集合在 NodeJS 中显示,但在 CLI 中不显示?

node.js - Mongoose - 如何在自定义类型上添加 2dsphere 索引?

mongodb - 您可以在 MongoDB 中查询任何具有给定值的属性吗?