简单的MongoDB查询查找项目年龄>10个学习你mongo查找函数



我正在浏览learnyoumongo,我被第三部分卡住了。基本上,挑战中包含一个测试数据库,其中充满了鹦鹉,目标是选择年龄大于输入的鹦鹉。我得到了一个奇怪的错误,谷歌上全是mongo 2。x解决方案不完全相同的问题,我使用mongo 3.0

这是javascript代码:

var mongo = require('mongodb').MongoClient;
var parsedInput = parseInt(process.argv[2]);
var results;
mongo.connect('mongodb://localhost:27017/learnyoumongo', function(err, db){
    results = db.collection('parrots').find({ age: { $gt: parsedInput } } ).toArray(function(err, doc) //find if a value exists
    {
        if(doc) //if it does
        {
            console.log(doc);
        }
        else{
            console.log(err);
        }
    });
    //console.log(results);
    db.close();
});

这是一个奇怪的错误信息:

PS C:gitlearnyoumongo> node .test.js {[MongoError: server localhost:27017 sockets closed]名称:"MongoError",消息:'server localhost:27017 sockets closed'}

我试着重新启动mongo,但我仍然无法取出任何"鹦鹉"数据。即使只有find({})

问题是两方面的—主要问题是我希望能够使用node test.js运行查询,并查看鹦鹉集合的结果。但是learnyoumongo有原子测试,这意味着它们在前后完全清除数据库,所以测试的唯一方法是learnyoumongo test.js,我一直得到一个空的结果集运行node命令。

另一个问题是db.close(),你不能只调用db。打开,然后db。关闭,因为打开是异步的,它会在打开后立即关闭,因此出现套接字关闭错误。输入db。在toArray函数中close,或在db.open

的任何其他回调中

最新更新