Json NodeJS+;Mongo-如何获取收藏的内容?
我正在用mongo编写一个简单的NodeJS应用程序。要连接到mongo,我使用:Json NodeJS+;Mongo-如何获取收藏的内容?,json,node.js,mongodb,Json,Node.js,Mongodb,我正在用mongo编写一个简单的NodeJS应用程序。要连接到mongo,我使用: var mongo = require('mongodb'), Server = mongo.Server, Db = mongo.Db, ObjectID = require('mongodb').ObjectID; db.open(function(err,db) {...}; 所以,我有数据库“docs”,我创建了一个名为“companys”的集合。现在它有4个对象(记录)。我想以数组的形式获取此集合的全
var mongo = require('mongodb'),
Server = mongo.Server,
Db = mongo.Db,
ObjectID = require('mongodb').ObjectID;
db.open(function(err,db) {...};
所以,我有数据库“docs”,我创建了一个名为“companys”的集合。现在它有4个对象(记录)。我想以数组的形式获取此集合的全部内容,并逐行显示:
//get companies list
app.get('/companies',function(req,res){
db.collection("companies",function(err,collection){
collection.find({},function(err, companies) {
companies.forEach(function(err,company){
console.log (company);
}
);
});
});
});
但是,Node会向我返回这样的错误:
TypeError: Object #<Cursor> has no method 'forEach'
TypeError:对象#没有方法“forEach”
有什么想法吗?提前感谢。使用。每个公司,而不是forEach传递到
find
回调中的公司
参数是一个对象,而不是数组。调用toArray
将查询结果转换为一个对象数组,或每个对象一次处理一个结果。是的,我收到了,谢谢!但是,我想再问一个问题:每个“公司”对象都有几个域,例如公司名称。我正在尝试获取console.log(company.company_name);,但它不起作用。它返回“无法读取null的属性'company\u name'”如果company是游标的有效部分,它怎么可能为null?当传递到每个回调中的company
参数为null时,这意味着您已到达游标的末尾(没有更多结果)。不确定,我理解您的意思,哦。我会尽量阅读你们提供的手册,谢谢。但是我如何才能获得当前对象“公司”的物业公司名称?就像你提到的:company.company\u name
噢,真丢脸-我刚刚注意到它给我打印了4个名称,而在第五天就出现了这个错误!这是因为我在这个集合中只有4个对象。但我仍然无法得到它-如果集合“companys”只有4个对象,为什么在打印4个object.names之后,节点尝试获取其他对象并得到一个错误?我想,它应该打印4个公司名称和退出函数。我强烈建议您使用Mongoose tho。节省大量时间。我今天只想问你们:猫鼬和猫鼬有什么区别吗?哪个更好?@IlyaRusanen MongoDB是NoSQL数据库。而Mongoose是一种对象建模工具,允许您定义表示MongoDB文档(JSON对象)的模式