1

我真的不知道如何描述它发生的原因,或者如何重现它。我有一种从外部站点下载一些数据并将其保存到文档的方法。如果我稍后查找文档(例如:通过查找),它就消失了。

如果我在控制台中并且事先将对象分配给一个变量,我可以通过该变量访问数据,但 .find 找不到它,并且 Collection.count 少一个。

为什么会出现这种情况?有任何想法吗?

这是使用 mongolab 在 heroku 上托管的。我在想也许数据库空间不足,但统计页面似乎另有说明。

我读错了吗?这是 db.stats() 输出:

{
  "serverUsed": "A_URL_HERE",
  "db": "DB_NAME_HERE",
  "collections": 11,
  "objects": 116295,
  "avgObjSize": 3300.993611075283,
  "dataSize": 383889052,
  "storageSize": 474427392,
  "numExtents": 49,
  "indexes": 9,
  "indexSize": 4259696,
  "fileSize": 520093696,
  "nsSizeMB": 16,
  "ok": 1
}
4

1 回答 1

1

可能有很多不同的问题,但最有可能的是您已经达到配额。您可以在 MongoLab UI 中查看每个不同存储统计信息的说明。storageSize 和 fileSize 接近配额的事实意味着如果你没有达到它,你就接近了。

无论问题的根源是什么,您都应该确保您使用的是安全模式。这是使用通过驱动程序创建连接的新MongoClient 方法时的默认设置。它会在移动一个之前检查错误,而在过去这不是默认行为。服务器很有可能返回一个错误(当你达到配额时它会这样做),但驱动程序没有检查它。

与往常一样,您可以直接通过 support@mongolab.com 给我们写信,我们非常乐意为您提供帮助!

于 2013-01-05T08:14:42.893 回答