0

有一个索引集合,以下搜索在 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}'
)
4

0 回答 0