尝试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
将在您的两个代码示例中获得相同的数据。
我相信问题出在你没有在这里提供的代码中。
是的,你是对的。更重要的是,我对编写异步代码相当陌生。除了我提供的代码之外,没有其他的东西了。我只是从这里调整字面https://github.com/sergeyksv/tingodb#usage,我想我必须把它作为一个开发者的错误......我会接受你的答案,因为现在我有至少要证实它不是提升或范围。 –