Что такое `_doc` внутри mongoose (console.log показывает одинаковые результаты с ним и без него) - PullRequest
0 голосов
/ 22 декабря 2018

Я хотел бы получить ответ, что именно означает ._doc для mongoose или mongodb.и почему деструктуризация / ... показывает ошибку в console.log, но прекрасно работает в операторе возврата

Следующие 2 строки возвращают одни и те же объекты, так почему они там есть и что ._doc делает console.log (событие);// вернуть те же объекты console.log (event._doc);// вернуть те же самые объекты

`events: () => {
   return Event.find()
     .then(events => {
       return events.map(event => {
         console.log(event); // return the same objects
         console.log(event._doc); // return the same objects
         console.log(...event); /* Graphql say "Found non-callable @@iterator" but later, on return I'm using destructuring without any errors why ? */
           return {
              ...event._doc, 
               _id: event._doc._id.toString(), 
               date: new Date(event._doc.date).toISOString(),
               creator: user.bind(this, event._doc.creator)
                };
            })
        })`

Вот как console.log(event); or console.log(event._doc); выглядит как

`{ _id: 5c1c6d928debd345a54de4ce,
  title: ' Test',
  description: 'Test',
  price: 26.99,
  date: 2018-12-21T04:35:30.672Z,
  creator: 5c1c699bc1f1423c0047d2f1,
  __v: 0 }
{ _id: 5c1d8cde6efd7f02832aa2fa,
  title: 'Test 2',
  description: 'another description',
  price: 23.22,
  date: 2018-12-22T01:01:18.735Z,
  creator: 5c1c699bc1f1423c0047d2f1,
  __v: 0 }
{ _id: 5c1d8d6f6f51b802fc32ab22,
  title: 'Test 3',
  description: 'another description 3',
  price: 123.22,
  date: 2018-12-22T01:03:43.543Z,
  creator: 5c1c699bc1f1423c0047d2f1,
  __v: 0 }`

Так что это даже не массив, почему мне нужен ... взамен?Я следую этому коду в учебнике, но не понимаю этих двух вещей, поэтому буду признателен за любой полезный ответ.Я пользуюсь: Mongo, MongoDb and GraphQl Спасибо.

1 Ответ

0 голосов
/ 22 декабря 2018

Поле _doc позволяет получить прямой доступ к «сырому» документу, который был доставлен через драйвер mongodb, минуя мангуста.По этой же причине вы можете получить запутанные результаты, используя console.log.

Если вы просто регистрируете элемент mongoose, вывод может выглядеть очень похоже на вывод _doc, поскольку в mongoose есть метод toString (), который будет выводить только фактические точки данных, а не все вспомогательные функции, такие как (.save).(), update () ...).

Проверьте https://github.com/Automattic/mongoose#driver-access для получения дополнительной информации

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