Невозможно получить ключи JSON в массиве с помощью Object.keys () - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь извлечь все ключи из результата запроса в массив.Должно быть супер легким делом, но как-то не в состоянии.Вот фрагмент:

fromMongoDB = parent.posts[0]
returnedkeys = Object.keys(fromMongoDB);
console.log(fromMongoDB);
console.log('-----------------------------');
console.log(returnedkeys);

Данные, которые я получаю в fromMongoDB, - это объект с двумя парами ключ-значение:

{
   id: <some ID>,
   title: <some title>
}

Используя Object.keys(), я намеренполучить массив из двух ключей:

[
  id, title
]

Но вот что я получаю вместо этого:

{ id: '5ba1f3e7cc546723422e62a4', title: 'A Title!' }
-----------------------------
[ '__parentArray',
  '__parent',
  '__index',
  '$__',
  'isNew',
  'errors',
  '_doc',
  '$init' ]

Что я делаю не так?fromMongoDB не является объектом JSON?

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

Попробуйте что-то вроде этого:

Object.getOwnPropertyNames(fromMongoDB);
0 голосов
/ 19 сентября 2018

Попробуйте вместо этого функцию lean () .Добавьте .lean () к вашему запросу, а затем используйте Object.keys (), чтобы получить массив ключей.

0 голосов
/ 19 сентября 2018

Вы можете попробовать ниже агрегации в mongodb 3.4.4 и выше

db.collection.aggregate([
  { "$project": {
    "keys": {
      "$objectToArray": "$$ROOT"
    }
  }},
  { "$project": { "keys": "$keys.k" }}
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...