nodejs "undefined" при преобразовании объекта Mon goose в строку - PullRequest
2 голосов
/ 05 мая 2020

в моем коде у меня есть следующие журналы консоли:

console.log(JSON.stringify(department.locationFilter, null, 2));
console.log(JSON.stringify(department.locationFilter.geoLocation, null, 2));

Результат первого журнала:

{
  "city": "Stuttgart",
  "radius": 50,
  "geoLocation": {
    "type": "Point",
    "coordinates": [
      9.1800132,
      48.7784485
    ]
  }
}

Результат второго журнала:

undefined

Когда я регистрирую "geoLocation" in department.locationFilter, это также приводит к false.

Я не понимаю, почему geoLocation undefined, потому что оно существует внутри объекта JSON.

Для еще немного информации, отдел читается с mongodb.

1 Ответ

2 голосов
/ 05 мая 2020

Mon goose известен тем, что генерирует странные и неизменяемые объекты. То, что вы регистрируете, - это не обязательно JSON, как вы думаете, но некоторые из странностей Mon goose. Попробуйте сначала преобразовать объект Mon goose в обычный простой объект: department = department.toObject().

Кроме того, если вам нужны только данные, а не полный объект Mon goose, вы можете запросить, используя .lean():

Model.find({}).lean()

Вы получите простые объекты прямо из коробки, а функция Lean () работает быстрее.

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