我正在尝试将查询结果中的所有键检索到数组中。应该是一件超级容易的事情,但是却不能够做到。这是代码段:
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对象吗?
答案 0 :(得分:1)
您可以在mongodb 3.4.4 及更高版本
中尝试以下聚合db.collection.aggregate([
{ "$project": {
"keys": {
"$objectToArray": "$$ROOT"
}
}},
{ "$project": { "keys": "$keys.k" }}
])
答案 1 :(得分:1)
尝试这样的事情:
Object.getOwnPropertyNames(fromMongoDB);
答案 2 :(得分:1)
请尝试使用lean()函数。 将.lean()附加到查询中,然后使用Object.keys()获得键数组。