javascript - 如果我链接 .sort(), Mongoose 查询会失败

标签 javascript mongodb mongoose coffeescript

使用 Mongoose 4.3.6

这个查询完美运行:(这是coffeScript,我在下面添加了等效的Javascript)

age = 43200000 # Milliseconds = 24h

Ad
    .find
        site : body.codeName
        checked :
            $lt : new Date( (new Date()) - age )
    .exec (err,ads) ->
        return res.status(500).send err if err
        log "Found #{ads.length} ads"

所以它有效,我明白

"Found 38246 ads"

但是如果我想对“选中”字段进行排序:

age = 43200000 # Milliseconds = 24h

Ad
        .find
            site : body.codeName
            checked :
                $lt : new Date( (new Date()) - age )
        .sort '-checked'
        .exec (err,ads) ->
            return res.status(500).send err if err
            log "Found #{ads.length} ads" # ads is undefined

然后我得到

"Error : ads is undefined"

显然“checked”字段存在,因为查询 #1 有效。在我的 Mongoose 模型中,它的类型为“Date”。

<小时/>

与编译的 Javascript 相同的代码:

var age = 43200000;

Ad.find({
  site: body.codeName,
  checked: {
    $lt: new Date((new Date()) - age)
  }
}).exec(function(err, ads) {
  if (err) {
    return res.status(500).send(err);
  }
  return log("Found " + ads.length + " ads");
});

"Found 38246 ads"

var age = 43200000;

Ad.find({
      site: body.codeName,
      checked: {
        $lt: new Date((new Date()) - age)
      }
}).sort('-checked').exec(function(err, ads) {
      if (err) {
        return res.status(500).send(err);
      }
      return log("Found " + ads.length + " ads"); // Error : ads is undefined
});

"Error : ads is undefined"

有什么想法吗?

最佳答案

启用 Mongoose 调试后,我设法得到以下错误输出:

[MongoError: getMore executor error: Overflow sort stage buffered data usage of 33554893 bytes exceeds internal limit of 33554432 bytes]

如果查询返回太多结果,MongoDB 似乎无法排序...

关于javascript - 如果我链接 .sort(), Mongoose 查询会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34895453/

相关文章:

mongodb - 将数据导入 openshift mongoDb

javascript - 使用 mongoose 查询测试快速路由

node.js - 在不知道 _id 的情况下在 Mongoose/Mongodb 中嵌入文档

javascript - Leaflet- 标记点击事件工作正常,但类的方法在回调函数中未定义

Mongodb 查询不使用索引

javascript - 如果有人尝试在未登录的情况下访问页面,如何避免崩溃?

javascript - 如何控制2个代码块的执行?

javascript - 创建密码扰码器

javascript - 将接受 header 参数传递给 jQuery AJAX

javascript - Vuejs 仅在加载数据后挂载子组件