【问题标题】:Mongod is crashing when querying the databaseMongod在查询数据库时崩溃
【发布时间】:2017-09-14 23:44:35
【问题描述】:

我有一个运行 nodejs 和 mongod 的 AWS 实例。我试图从中查询的集合中大约有 289248 个文档。

这是我用来查询数据的代码:

var collection = db.collection('my_collection');
collection.find({ $and: [ 
        {"text" : {$regex : ".*"+keyword+".*"}}, 
        {"username" : username} 
    ] }).limit(10).toArray(function(err, docs) {

现在,我最初在查询用户名 collection.find({"username":username}) 时遇到问题,因为 mongo 中有太多条目。所以我开始限制我的代码,在 mongo 控制台中,我可以将限制设置为 30,它会产生我正在寻找的结果。

但是,当我在 nodejs 上运行此应用程序时,当我查询此命令时,它会使我的 mongod 服务崩溃,我必须重新启动它。在节点服务器上,限制为 1 可以正常工作,但限制为 5 则不行。如果数据库中有更多结果,我不能简单地使用 1 的限制。我能做什么?

【问题讨论】:

  • 你检查过服务器日志,看看有没有线索?

标签: node.js mongodb amazon-web-services


【解决方案1】:

not using $and 有影响吗? :

collection.find({text:{$regex:".*"+keyword+".*"},username: username})

我也想知道'text'是否是一个文本索引,在这种情况下它应该是'$text'。

我还注意到您在查询表达式中使用了两个变量,并想知道您是否已验证这些变量已定义。

【讨论】:

猜你喜欢
  • 2020-02-10
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
相关资源
最近更新 更多