小编Lev*_*ner的帖子

为什么我的聚合超过了最大文档大小?

我有一个名为的集合roles和另一个名为的集合subjects.每个主题都有一个名为的字段role_id,其中包含该主题角色的ID.我正在尝试使用此查询计算每个角色的主题数:

db.roles.aggregate([
    {"$lookup" : { 
        "from": "subjects", 
        "localField": "_id",
        "foreignField": "role_id",
        "as": "subject_matches"
    } },
    {"$project": { "_id": 1, "total_matches": {"$size": "$subject_matches"} } },
    {"$out": "testing"}
], {allowDiskUse: true} )
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到以下错误:

assert: command failed: {
    "ok" : 0,
    "errmsg" : "Total size of documents in subjects matching { role_id: { $eq: ObjectId('55421027b2fb3e916f0001e9') } } exceeds maximum document size",
    "code" : 4568
} : aggregate failed
_getErrorWithCode@src/mongo/shell/utils.js:25:13
doassert@src/mongo/shell/assert.js:13:14
assert.commandWorked@src/mongo/shell/assert.js:267:5
DBCollection.prototype.aggregate@src/mongo/shell/collection.js:1312:5
@(shell):1:1
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我得到这个 - 根据Mongo文档,结果大小限制仅适用于返回的文档,并且在管道处理期间可以超出此大小限制(https://docs.mongodb.com/manual/core/aggregation-pipeline-limits …

mongodb mongodb-query

1
推荐指数
1
解决办法
5169
查看次数

标签 统计

mongodb ×1

mongodb-query ×1