繁体   English   中英

MongoDB:在一个文档中获取所有集合

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM