【问题标题】:Size is Larger than MaxDocumentSize大小大于 MaxDocumentSize
【发布时间】:2011-05-30 15:28:43
【问题描述】:

使用 MongoDB 的 10gen C# 驱动程序,在生产中每隔一段时间我都会看到这个错误:

System.IO.FileFormatException:大小大于 C:\work\10gen\mongodb\mongo-csharp-driver\Bson\IO\BsonBinaryReader.cs 中 MongoDB.Bson.IO.BsonBinaryReader.ReadSize() 的 MaxDocumentSize:第 556 行

有没有办法使 MaxDocumentSize 更大以防止出现此错误?

我的文档大小不可能接近 16MB,我也不存储任何文件。这是一个示例文档,当我将其保存在记事本中时,它看起来是 13KB。

{
  "Address": "1080 DUNLAP ORPHANAGE RD",
  "Baths": null,
  "Beds": null,
  "Broker": "Crye-Leike, Inc., REALTORS |(901)840-1181",
  "City": "Unincorporated",
  "Coordinates": {
    "Latitude": 35.414949,
    "Longitude": -89.676481
  },
  "CreateDate": "Sun, 03 Apr 2011 19:40:11 GMT -04:00",
  "Description": "",
  "ExteriorConstruction": "Aluminum/Steel Siding, Double Pane Window(s), Vinyl Siding, Conventional Foundation",
  "ExteriorFeatures": "",
  "FireplaceFeatures": "In Den/Great Room, Masonry, Wood Stove Insert",
  "HasGarage": true,
  "HeatingFeatures": "Ceiling Heat, Central, Gas, Wood Stove",
  "HouseSize": null,
  "InteriorFeatures": "Double Vanity Bath, Split Bedroom Plan, BEDROOM 2: Carpet, Level 2, Walk-In Closet; BEDROOM 3: Carpet, Level 2, Walk-In Closet; BEDROOM 4: Carpet, Level 2, Private Half Bath, Walk-In Closet; Part Carpet, Part Hardwood, Sprayed Ceiling, Tile Floor, Wood Laminate Floors, Attic Access, Cable Available, Cable Wired, Central Vac, Mud Room, Walk-In Attic, Walk-In Closet(s), Breakfast Bar, Eat-In Kitchen, Pantry, Separate Dining Room, Washer/Dryer Connections, MASTER BATH: Carpet, Double Sinks, Dressing Area, Tile Floor; Gas Water Heater, Entry Hall",
  "IsActive": true,
  "ListingFeatures": [
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Status: ACTIVE"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "County: Tipton"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Approximately 10 acre(s)"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "2 total full bath(s)"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "2 total half bath(s)"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "9 total rooms"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "2 stories"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Type:  General Residential"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Master Bedroom is Carpet, Full Bath, Level 1, Walk-In Closet"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Basement is Partial, Unfinished"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Pool features:  Above Ground"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "2 covered parking space(s)"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Yes car garage(s)"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Attached parking"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Cooling features:  220 Wiring, Dual System,Cooling"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Inclusions:  Cooktop, Dishwasher, Gas Cooking, Microwave, Refrigerator, Satellite Dish, Self Cleaning Oven"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Lot features:  Chain Fenced, Landscaped, Level, Some Trees, Wooded"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Lot size is between 10 and 20 acres"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Utilities present:  Public Water, Septic Tank"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Swimming pool(s)"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Basement"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Den"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Laundry room"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Hardwood floors"
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "Name": "Parking features:  Driveway/Pad, Garage Door Opener(s), Storage Room(s), Workshop(s)"
    }
  ],
  "ListingPhotos": [
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m0x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m0t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m1x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m1t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m2x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m2t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m3x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m3t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m4x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m4t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m5x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m5t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m6x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m6t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v02/l7d100943-m7x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v02/l7d100943-m7t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v02/l7d100943-m8x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v02/l7d100943-m8t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v02/l7d100943-m9x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v02/l7d100943-m9t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v02/l7d100943-m10x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v02/l7d100943-m10t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    },
    {
      "_id": null,
      "CreateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "UpdateDate": "Sun, 03 Apr 2011 19:40:04 GMT -04:00",
      "OriginalPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m11x.jpg",
      "OriginalPhoto": null,
      "OriginalPhotoUpdateDate": null,
      "ThumbnailPhotoUrl": "http://p.rdcpix.com/v01/l7d100943-m11t.jpg",
      "ThumbnailPhoto": null,
      "ThumbnailPhotoUpdateDate": null
    }
  ],
  "ListingPriceHistories": null,
  "ListingSalesHistories": [],
  "ListingTaxHistories": [],
  "LotSize": null,
  "MlsCreateDate": "Sat, 15 Jan 2011 19:40:04 GMT -05:00",
  "MlsId": "3215435",
  "MlsRefreshDate": "Sun, 03 Apr 2011 19:31:04 GMT -04:00",
  "Neighborhood": "Not Available",
  "Price": 290000,
  "PropertyType": "Single Family Home",
  "RealtorUrl": "http://realtor.com/realestateandhomes-detail/1080-dunlap-orphanage-rd_unincorporated_tn_38011_1124667517",
  "Roofing": "Composition Shingles",
  "State": "TN",
  "Stories": 2,
  "Style": "Traditional",
  "UpdateDate": "Sun, 03 Apr 2011 19:40:11 GMT -04:00",
  "YearBuilt": 1987,
  "ZipCode": "38011",
  "_id": {
    "$oid": "4d99055b1b9ba917bcef9443"
  }
}

【问题讨论】:

  • 在 MongoDB 1.8 中限制为 16GB。你存这么大的东西是什么?你不能使用 GridFS 吗?
  • 我没有存储任何接近 16MB 的内容。
  • 您不会碰巧在某种循环上创建该文档吧?我这样做了,但我不小心忘记在每次循环迭代时重新开始,所以我得到了一个非常大的文件并收到了同样的错误。
  • @atbebtg - 您能否进一步描述一下您在循环中创建它并忘记重新开始的意思?我只是使用 Collection.Save() 并传入我的对象。谢谢。
  • 我有一个类 List 作为属性之一。我正在将几千条记录形式的 sql 转换为 mongodb,所以我循环记录集以创建该类的新实例,然后执行内部循环以获取 List。我忘记在每个外部循环迭代中清除 List ,所以当我到达第 1000 次迭代时, List 太大了,以至于我收到 Size is Larger than MaxDocumentSize 错误。我只是想我会把它扔在那里,因为我花了一段时间才意识到这一点。我被困在我的文档尺寸很小,所以这不可能是心态。

标签: mongodb mongodb-.net-driver


【解决方案1】:

通常,如果您的文档太大,您可能会在将它们写入数据库时​​收到此错误,而不是在读取它们时。

您能否提供更多信息:

  • 您使用的是哪个版本的 C# 驱动程序?
  • 您使用的是哪个版本的服务器?
  • 您知道导致此问题的文档大小吗?
  • 您能否使用 mongo shell 或其他驱动程序成功检索此文档?

如果您愿意自己构建驱动程序,您可以在引发异常的行上设置断点,并确定文档的大小和最大文档大小,然后报告这些数字。

谢谢。

【讨论】:

  • “通常,如果您的文档太大,您会在将它们写入数据库时​​收到此错误,而不是在读取它们时。”
  • 我使用的是 1.0.0.4098 版本的 C# 驱动程序。它说 MongoDB shell 版本:1.6.5,不确定这是服务器版本还是只是 shell。文档的大小都在 20KB 左右,而且是不可预知的,有时文档会正常返回,有时会抛出此错误。我还没有尝试使用 shell 检索文档,有机会我会尝试。
  • 因此您的文档看起来永远不会接近最大大小(在 1.6 中是 4MB,目前是 16MB)。我看到此错误的另一个原因是数据损坏,这导致长度字段具有一个奇怪的值,该值通常超过最大文档大小。但是当 BSON 阅读器代码中存在错误并且它失去了位置时,我也看到了这个错误(尽管我已经很长时间没有看到了......)。如果您找到一种方法可以始终如一地重现这一点,请告诉我。
  • 我实际上有一个每次都复制它的生产 url,我在本地复制生产数据库然后我应该能够在调试时重现它。 repairDatabase() 命令会修复损坏的数据问题吗?我可以尝试修复并将我的服务器版本升级到最新版本,但是我想即使它增加到 16MB,但我的 >20KB 数据注册为超过 4MB 仍然令人担忧。
  • 我升级到 mongo 1.8.2-rc2 并且错误消失了,谢谢!
【解决方案2】:

我认为唯一的办法是调整和重新编译MongoDb的源代码。我没有尝试过,但我发现了这个:https://github.com/mongodb/mongo/commit/29d9dab034c6f7df497b76f543ba467e687a9063

编辑 1:OP 提供了使我的答案不再相关的附加信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-03
    • 2019-09-04
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    相关资源
    最近更新 更多