Как скрыть некоторые ключи на вашем объекте при использовании console.log

Хорошо, я новичок в javascript и node, поэтому этот вопрос может показаться вам глупым, но мне действительно нужно просветление. Во всяком случае, у меня есть объект, который я получил от своего мангуста. Давайте сделаем пример

Model.findOne({name:'John'}).exec(function (err, data){
 console.log(data);
});

Итак, когда я консольно записал данные, результат был

{_id: 613614asdfa6115, имя: "Джон", __v: 0}

Затем у меня возникла глупая идея добавить еще один ключ к этому объекту, поэтому, как сделал бы обычный новичок в javascript, я добавляю еще один ключ к данным:

data.hello = 'привет'

НО, когда я пытаюсь записать данные в console.log, результат остается прежним. Я был так сбит с толку. Поэтому я использовал клон lodash для клонирования объекта; к моему удивлению там было много скрытых ключей, которые не попали в первый console.log.

Вот результат клонированного объекта: http://pastebin.com/zE71Fg2H

Мой вопрос: как они скрыли некоторые ключи из console.log?


person mateeyow    schedule 27.10.2014    source источник
comment
Действительно!??! отрицательный голос без причины?! Разве я не заслуживаю объяснений?   -  person mateeyow    schedule 27.10.2014
comment
Эти скрытые ключи — это просто ключи, помеченные как неперечислимые или из прототипа объекта. Это все.   -  person TenorB    schedule 27.10.2014
comment
Хорошо, спасибо! Теперь я знаю, как много я еще не знаю о javascript. А если серьезно, мой вопрос действительно нуждается в отрицательном голосовании? Это был честный вопрос.   -  person mateeyow    schedule 27.10.2014
comment
Я думаю, что за ваш вопрос проголосовали против, потому что проголосовавший за него посчитал, что ваш вопрос не нуждается в ответе или просто невежественен. Извините, но сообщество Stack Overflow иногда может быть суровым.   -  person TenorB    schedule 27.10.2014
comment
Ага, цифры. Тот факт, что у них достаточно репутации, не означает, что они могут просто понизить голосование без предварительного объяснения/уведомления. Я имею в виду, как ОП может знать, что он сделал не так, когда все, что он / она получает, - это отрицательный голос? Если это повторяющийся вопрос, по крайней мере, я получаю ссылку на этот вопрос. В любом случае, большое спасибо за то, что просветили меня, добрый сэр. Если вы можете опубликовать свой ответ, я с радостью приму его.   -  person mateeyow    schedule 27.10.2014


Ответы (1)


попробуй это -

Model.findOne({name:'John'}).exec(function (err, data){
 data = data.toObject();
 data.hello = 'hi'
 console.log(data);
});

Надеюсь, это сработает. Для получения дополнительной информации используйте эту ссылку.

person Kundu    schedule 27.10.2014
comment
Очень проницательно, но на самом деле это не отвечает на мой вопрос. Но я проголосую за это. Благодарю вас! - person mateeyow; 27.10.2014
comment
после сохранения документа мангуст возвращает объект JSON. если вы хотите изменить это свойство, вам нужно преобразовать объект JSON в объект javascript. Вы можете сделать это с помощью метода toObject. - person Kundu; 27.10.2014