首先,这是我第一个使用 mongoDB 的应用程序,我也不是 Java 专家。我正在使用带有 Matlab 的 Java 库...
所以这里是给我带来麻烦的代码示例:
javaaddpath('C:\Users\######\Documents\MATLAB\JAR\mongo-2.10.1.jar')
import com.mongodb.*;
mongoClient = MongoClient();
db = mongoClient.getDB( 'MonroeLossErrorDB' );
coll = db.getCollection('Traces');
fileList = getFiles();
for i=1:350
file = fielList{i};
[x, samples] = getSamples(file);
doc = BasicDBObject();
doc.put('filename', file);
doc.put('samples',samples)
doc.put('x',x);
coll.insert(doc,WriteConcern.SAFE);
end
一切正常,没有任何错误,当我检查数据库时,确实有 350 个元组(文档)但是....脚本需要很多时间才能执行。我将其限制为 350,但我想做数千个循环。当我调试我的脚本时,我注意到由于某些原因,循环从 i=1 重新开始,就像在某个地方一次又一次地调用脚本一样。例如,在第 22 次迭代之后,脚本重新启动,然后在第 46 次迭代之后,它再次重新启动。当我停止当前进程时,我被重新抛出到在迭代 #46 处停止的前一个进程。当这个也停止时,我将被重新抛出到在迭代 #22 处停止的前一个,如果我再次停止它,最后整个脚本将结束。
是否有与数据库文件大小的链接?我的意思是,mongoDB 从 16MB 的文件开始,然后是 32MB 等等。这是否意味着在填充第一个文件后,再次执行脚本以填充更大的文件,然后重新启动另一个更大的文件,依此类推,直到文件可以包含所有文件?
为什么我的脚本在结束前多次重启?