我通過如下查詢exceeds maximum document size problem
例外,如何在不超過最大文檔大小的情況下編寫聚合?
pipe = [
{"$match": { "birthday":{"$gte":datetime.datetime(1987, 1, 1, 0, 0)} }}
]
res =db.patients.aggregate(pipe,allowDiskUse=True)
我加入了$project
運營商固定它,
但是如果文檔仍超過16MB
即使我用$project
?
我該怎麼辦?任何想法 ?謝謝
pipe = [
{"$project": {"birthday":1, "id":1}
},
{"$match": { "birthday":{"$gte":datetime.datetime(1987, 1, 1, 0, 0)} }
}
]
res =db.patients.aggregate(pipe,allowDiskUse=True)
異常
OperationFailure: command SON([('aggregate', 'patients'), ('pipeline', [{'$match': {'birthday': {'$gte': datetime.datetime(1987, 1, 1, 0, 0)}}}]), ('allowDiskUse', True)]) on namespace tw_insurance_security_development.$cmd failed: exception: aggregation result exceeds maximum document size (16MB)
你會如此善良,給一個小的Java例子或至少一個來源?最好的 –
對不起 - 我不熟悉Java mongo API –
感謝您的快速反應。我找到了一個解決方案(使用spring數據和mongoDB): 'List pipeline = new ArrayList <>(); DBObject someMatchCriteria = new BasicDBObject(); someMatchCriteria.put(「param」,「value」); DBObject out = new BasicDBObject(); (「$ out」,「outCollectionName」); pipeline.add(新的BasicDBObject(「$ match」,someMatchCriteria)); pipeline.add(out); mongoOperations.getCollection(「inCollectionName」)。aggregate(pipeline);' –