Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 只有一条记录的MongoDB数据库增长_Node.js_Mongodb - Fatal编程技术网

Node.js 只有一条记录的MongoDB数据库增长

Node.js 只有一条记录的MongoDB数据库增长,node.js,mongodb,Node.js,Mongodb,我有一个node.js应用程序,它将一条记录重复保存到mongodb数据库,如下面的代码示例所示。数据记录的大小实际上是几MB,但在任何时间点,一个集合中只有一条记录。不过,数据库的大小会不断增加,直到服务器的磁盘空间用完为止 _db.collection('myCollection', function(err, collection) { collection.remove({}, function(err, result) { collection.insert(myData)

我有一个node.js应用程序,它将一条记录重复保存到mongodb数据库,如下面的代码示例所示。数据记录的大小实际上是几MB,但在任何时间点,一个集合中只有一条记录。不过,数据库的大小会不断增加,直到服务器的磁盘空间用完为止

_db.collection('myCollection', function(err, collection) {
  collection.remove({}, function(err, result) {
    collection.insert(myData);
  });
});

我意识到有更好的方法来管理这些数据,一个月修复几次数据库就可以解决这个问题,但我真的很好奇为什么mongodb在这种情况下不会自动回收空间。

解决这个问题的一个方法是设置集合的最大大小。。。因为它总是只有一条记录。试着这样做:

_db.createCollection("myCollection", {size:100000});

您可以在这里了解一下MongoDB磁盘的使用情况:

这是一个复制错误的示例代码(在我看来是这样的),还是您只是拒绝使用更适合这种情况的
update
。该应用程序过去在集合中保存多条记录,但我将其简化为这样。我想知道这里是否真的有一个bug(特性),或者mongodb的工作原理是否有我遗漏的地方。