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