我有一个非常简单的$lookup聚合查询,如下所示:
{'$lookup':
{'from': 'edge',
'localField': 'gid',
'foreignField': 'to',
'as': 'from'}}
Run Code Online (Sandbox Code Playgroud)
当我在匹配足够的文档时运行它时,我收到以下错误:
Command failed with error 4568: 'Total size of documents in edge
matching { $match: { $and: [ { from: { $eq: "geneDatabase:hugo" }
}, {} ] } } exceeds maximum document size' on server
Run Code Online (Sandbox Code Playgroud)
所有限制文件数量的尝试都失败了.allowDiskUse: true什么也没做.发送输入cursor无效.添加$limit到聚合中也会失败.
怎么会这样?
然后我再次看到错误.哪里是$match和$and与$eq从何而来?幕后的聚合管道是否会$lookup调用另一个聚合,一个是自己运行的聚合管道,我无法为游标提供限制或使用游标.
这里发生了什么?
如何使用MongoDB C#驱动程序执行$ lookup?我在这里的驱动程序文档中找不到它:
https://docs.mongodb.org/getting-started/csharp/query/
但是如果我在他们的JIRA中正确理解这张票,它应该在驱动程序的2.2版本中: