无法使用 Object.keys() 获取数组中的 JSON 键



我正在尝试将查询结果中的所有键检索到数组中。应该是一件超级容易的事情,但不知何故我做不到。这是代码片段:

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 对象吗?

试试 lean(( 函数。 将 .lean(( 附加到查询中,然后使用 Object.keys(( 获取键数组。

您可以在 mongodb3.4.4及更高版本中尝试以下聚合

db.collection.aggregate([
{ "$project": {
"keys": {
"$objectToArray": "$$ROOT"
}
}},
{ "$project": { "keys": "$keys.k" }}
])

尝试这样的事情:

Object.getOwnPropertyNames(fromMongoDB);

最新更新