【问题标题】:Mongoose freezes on find when there is too many results当结果太多时,猫鼬会冻结查找
【发布时间】:2012-02-05 16:27:48
【问题描述】:

我正在尝试在 Mongoose 中实现查找。一切正常,直到数据库中有太多记录。在我的例子中,NewSchema 集合中有 8 条记录。有谁知道为什么会这样?

我的示例代码:

var NewSchema = new Schema({
  asd : String,
  sdf : String,
  dfg : String,
  fgh : String,
  bnmxcv : [String],
  klj : String,
  sdfsdf : String,
  wer : String,
  uio : Date
});

var New = mongoose.model('NewSchema', NewSchema);

New.find({asd:_id},
              function(err, list) {
  /////// IT FREEZES HERE ////////
});

【问题讨论】:

  • 它是在你的回调中“冻结”(你有评论的地方)还是没有调用回调?你能展示一下你的回调里面的代码是什么吗?
  • 8 在任何情况下似乎都不会“太多”。
  • 是的,我也不认为它“太多”,但它会以任何方式冻结。当我的意思是它冻结时,不会调用回调。我尝试在回调函数中添加一个console.log,消息从未被打印出来。
  • 顺便说一下,我在一个微型 ec2 实例上运行 Node.js 和 MongoDB。
  • 你让它工作了吗?我也遇到了同样的问题...

标签: node.js mongodb mongoose


【解决方案1】:

您还应该在尝试使用之前将架构注册到 Mongoose,尝试以下代码:

var NewSchema = new Schema({
  asd : String,
  sdf : String,
  dfg : String,
  fgh : String,
  bnmxcv : [String],
  klj : String,
  sdfsdf : String,
  wer : String,
  uio : Date
});

var NewSch = mongoose.model('NewSchema', NewSchema);

NewSch.find({asd:_id}, function(err, list) {
  // do stuff
});

【讨论】:

  • 您好,很抱歉造成误解,我实际上已经有了那段代码,我只是忘了把它复制到我上面的问题中。但是还是不行。
猜你喜欢
  • 1970-01-01
  • 2013-12-22
  • 2019-01-26
  • 2017-09-21
  • 2020-12-16
  • 1970-01-01
  • 2017-05-08
  • 2018-09-30
  • 2023-03-26
相关资源
最近更新 更多