尝试使用TingoDB:将全局var传递给insert

时间:2016-09-23 20:02:58

标签: javascript node.js tingodb

我正在使用node.js对几个嵌入式dbs进行测试和基准测试。有了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个条目。

1 个答案:

答案 0 :(得分: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将在您的两个代码示例中获得相同的数据。

我认为问题出现在你在这里没有提供的代码中。