Чем "foo" отличается от foo в паре ключ-значение mongodb? - PullRequest
3 голосов
/ 22 октября 2010

Когда я вижу поле: пара значений как

"name":"foo" и "name":foo

В чем разница между двумя? Оба значения должны быть строками?

А как же

"age":3 и "age":"3"

Является ли первое целым числом? Я сбит с толку.

Спасибо.

1 Ответ

5 голосов
/ 22 октября 2010

Строки против переменных

Следующее присваивает строковое значение "foo" свойству:

item = { "name" : "foo" } // item.name = "foo"

Следующее присваивает значение переменной foo свойству. Если переменная foo не существует, вы получите сообщение об ошибке:

item = { "name" : foo } // foo doesn't exist yet, will result in error

foo = "my value" // foo is defined here
item = { "name" : foo } // item.name = "my value"

Числа и строки

Следующее присваивает Number значение свойству:

child = { "age" : 3 } // child.age = 3

Числа могут использоваться в всех математических операциях. Например, child.age * 3 приведет к 9, а child.age + 4 приведет к 7.

Следующее присваивает строковое значение свойству:

child = { "age" : "3" } // child.age = "3"

Строки не могут использоваться во всех вычислениях. Например, child.age * 3 приведет к 9, , но child.age + 4 приведет к 34 из-за конкатенации строк.

Вы должны использовать только строки, если данные являются текстовыми данными. Если данные являются числовыми, сохраните их как число (без кавычек).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...