Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Javascript 跨所有集合的文本搜索_Javascript_Mongodb - Fatal编程技术网

Javascript 跨所有集合的文本搜索

Javascript 跨所有集合的文本搜索,javascript,mongodb,Javascript,Mongodb,我需要做文本搜索跨越所有集合 我已经成功地在单个集合上使用了下面这样的查询 db.mycollectionname.find({$text:{ $search : "mytextstring"}}) 但现在我想要的是能够同时从多个集合返回结果的东西。我不想在应用程序级别处理这个问题,以减少对db的网络调用 我有什么选择?我不认为聚合或map reduce对我有用,因为它们看起来像group by(如果我错了,请纠正我)。我想要的是各种功能的联合。理想情况下,我不想硬代码集合的名称太多。查询应该

我需要做文本搜索跨越所有集合 我已经成功地在单个集合上使用了下面这样的查询

db.mycollectionname.find({$text:{ $search : "mytextstring"}})
但现在我想要的是能够同时从多个集合返回结果的东西。我不想在应用程序级别处理这个问题,以减少对db的网络调用


我有什么选择?我不认为聚合或map reduce对我有用,因为它们看起来像group by(如果我错了,请纠正我)。我想要的是各种功能的联合。理想情况下,我不想硬代码集合的名称太多。查询应该只对所有集合执行文本搜索。。有什么建议吗?

谢谢你的建议,不过我使用了listCollections方法,因为getCollectionNames不适合我。但是,我们正在向mongo拨打多个网络电话。。首先获取所有集合的列表,然后遍历所有集合并进行查找。有没有一种方法可以让我在一次通话中获得所有结果
function searchAll(query,fields,sort) {
    var all = db.getCollectionNames();
    var results = [];
    for (var i in all) {
        var coll = all[i];
        if (coll == "system.indexes") continue;
        db[coll].find(query,fields).sort(sort).forEach(
            function (rec) {results.push(rec);} );
    }
    return results;
}