试用 TingoDB:问题传递全局变量以插入

Trying out TingoDB: Issue passing global var to insert

我正在使用 node.js 对几个嵌入式数据库进行测试和基准测试。使用 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,而在第二种情况下,只会添加一个条目。

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

此外,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 将在您的两个代码示例中获得相同的数据。

我认为问题出在您未在此处提供的代码中。