[英]MongoDB: Get all collections in one document
我在使用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);
});
我认为您错过了find()
的参数部分。 即使您不想查找特定的内容,也必须在参数部分传递一个空对象。 因此看起来应该像find({}, function(){...});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.