查询数据库时,Mongod正在崩溃



我有一个带有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个限制。我该怎么办?

不使用$并有所作为?:

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

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

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

最新更新