Испытание TingoDB: Проблема, передающая глобальную переменную для вставки
Я тестирую и тестирую пару встроенных БД с помощью 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
в то время как во втором случае добавляется только 1 запись.
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
получит одинаковые данные в обоих ваших примерах кода.
Я считаю, что проблема в коде, который вы здесь не предоставили.