尝试TingoDB:发出传递全局变量以插入

问题描述:

我正在测试并使用node.js对几个嵌入式数据库进行基准测试。随着TingoDB,任何人都知道为什么这个工程尝试TingoDB:发出传递全局变量以插入

var test = { hello:'world' }; 
for (var j = 0; j < size; j++) { 
    collection.insert(test, { w: 1 }, function() {}) 
} 

但这并不:

for (var j = 0; j < size; j++) { 
    var test = { hello:'world' }; 
    collection.insert(test, { w: 1 }, function() {}) 
} 

也就是说,在第一种情况数据库获取与记录,直到size在第二种情况下填满,而只有1条目被添加。

您提供的两个代码示例没有区别。

另外,test是两种情况下的全局变量。 for不会创建它的范围,并且由于提升你的第二个代码示例如下所示:

var test; 
for (var j = 0; j < size; j++) { 
    test = { hello: 'world' }; 
    collection.insert(test, { w: 1 }, function() {}); 
} 

正如你所看到的,这几乎就像第一个。唯一的区别是它会创建一个新的{ hello: 'world' }对象,并将其每次分配给test变量。因此collection.insert将在您的两个代码示例中获得相同的数据。

我相信问题出在你没有在这里提供的代码中。

+0

是的,你是对的。更重要的是,我对编写异步代码相当陌生。除了我提供的代码之外,没有其他的东西了。我只是从这里调整字面https://github.com/sergeyksv/tingodb#usage,我想我必须把它作为一个开发者的错误......我会接受你的答案,因为现在我有至少要证实它不是提升或范围。 –