Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mongod在查询数据库时崩溃_Node.js_Mongodb_Amazon Web Services - Fatal编程技术网

Node.js Mongod在查询数据库时崩溃

Node.js Mongod在查询数据库时崩溃,node.js,mongodb,amazon-web-services,Node.js,Mongodb,Amazon Web Services,我有一个运行nodejs和mongod的AWS实例。我试图查询的集合中大约有289248个文档 以下是我用来查询数据的代码: var collection = db.collection('my_collection'); collection.find({ $and: [ {"text" : {$regex : ".*"+keyword+".*"}}, {"username" : username} ] }).limit(10).toArray(f

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

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

var collection = db.collection('my_collection');
collection.find({ $and: [ 
        {"text" : {$regex : ".*"+keyword+".*"}}, 
        {"username" : username} 
    ] }).limit(10).toArray(function(err, docs) {
最初,我在查询username
collection.find({“username”:username})
时遇到问题,因为mongo中有太多条目。因此,我开始限制我的代码,在mongo控制台中,我可以将限制设置为30,这样就得到了我想要的结果

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

有什么不同吗

collection.find({text:{$regex:".*"+keyword+".*"},username: username})
我还想知道“text”是否是一个文本索引,在这种情况下它应该是“$text”


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

另一个问题是,仅
collection.find({“username”:username})。limit(10)
对某些查询也不起作用。所有文档都在16MB以下吗?MongoDB的版本是什么?您是否可以尝试使用探查器来识别和比较缓慢的查询:您是否检查了服务器日志,以查看是否有任何线索?