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;
}