有一个索引集合,以下搜索在 mongosh 中似乎很快。假设 3 秒从 4000 万个中获得 800 个结果。
然而,在 R 中,搜索(使用 mongolite)非常慢,特别是在同一聚合中进行两个匹配,大约 20 秒。通过第二种方法,创建一个新集合,并没有那么慢。
我想知道如何在保持速度的同时避免创建新集合。或者如果有任何其他方法可以在 R 中搜索。
可能与这个可能的错误有关:https ://github.com/jeroen/mongolite/issues/222
# very slow
db_con_occur$aggregate(paste0(
'[{ "$match": {"country": "',country,'" } },
{ "$match": {\"', fieldName ,'\":\"', searchword ,'\" } } ]') ,
options = '{"allowDiskUse":true}'
)
# not so slow in two steps
# first match, and new collection
db_con_occur$aggregate(paste0(
'[{ "$match": {"country": "',country,'" } },
{ "$out": "',collectionName,'" }]') ,
options = '{"allowDiskUse":true}'
)
# second match after stablishing connection
db_con$aggregate(paste0(
'[{ "$match": {\"', fieldName ,'\":\"',searchword ,'\" } } ]' ),
options = '{"allowDiskUse":true}'
)