我在使用Javascript和mongoDB时遇到了麻烦。我通过以下方式连接:
var db = mongo.db(config.connectionString, { native_parser: true });
并绑定我的访问者集合db.bind('visitors');
。因此,在尝试使用该行将所有文档放到那里之后:
db.visitors.find(function (err, visitors) {
if (err) deferred.reject(err.name + ': ' + err.message);
deferred.resolve(visitors);
});
所以一切对我来说都很好。但是我每次都会收到此错误:
angular.js:12011 GET http:// localhost:3000 / api / visitors / getAll 400(错误请求)
我用我的api想到了它,所以我尝试了一下...findOne({_id:1},..
并且奏效了。那我错过了什么吗?
是的,这是错误的。它应该是:
db.visitors.find({}, function (err, visitors) {
if (err) deferred.reject(err.name + ': ' + err.message);
deferred.resolve(visitors);
});
参数为:
collection.find(query[[[, fields], options], callback]);
它首先需要查询,然后是回调,而您首先要提供回调。
您进行的测试findOne()
有效,因为您正在通过{_ id: 1}
对象传递查询。
Node.js中有关MongoDB查询的文档在这里。
编辑:
.find()
通过将其转换为数组以异步方式使用和处理游标对象的示例:
db.visitors.find({}).toArray(function (err, docs) {
if (err) throw err;
console.log(docs);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句