Javascript 没有getter和setter的NodeJs MongoDb结果

Javascript 没有getter和setter的NodeJs MongoDb结果,javascript,node.js,mongodb,d3.js,Javascript,Node.js,Mongodb,D3.js,我正在开发一个NodeJs应用程序,它利用MongoDB存储大量数据。使用“.find”或“.findOne”查询函数检索数据 const collection = db.collection('recordings'); collection.find({}, {fields: ['header']}).toArray() .then(documents => { console.log(documents); resolve(documents

我正在开发一个NodeJs应用程序,它利用MongoDB存储大量数据。使用“.find”或“.findOne”查询函数检索数据

const collection = db.collection('recordings');

collection.find({}, {fields: ['header']}).toArray()
    .then(documents => {
        console.log(documents);
        resolve(documents);
    })
    .catch(error => reject(error));
该应用程序是使用Electron Js构建的,因此我可以通过chrome developer工具检查数据:

有了这些getter和setter,应用程序会变得非常慢。由于数据也显示在D3图表中,我提出了一个相当奇怪的解决方案来删除所有功能:

JSON.parse(JSON.stringify(documents))
没有这个额外的步骤,图表开始结巴

有没有更好的方法来检索原始结果,而不必遍历所有文档来删除不必要的getter和setter函数


谢谢。

问题肯定不在mongo。我还对这一行感到困惑
{fields:['header']}

如果只需要标题字段,则需要这样查询

collection.find({},{'header':1,\u id:0}).toArray()


希望这能有所帮助。

在遵循了本文的建议后,我找到了解决方案:

只有将Electron渲染器进程直接连接到mongo数据库时,才会出现此问题。 您应该使用主进程,并使用ipc传输每个查询的结果


感谢Mykola Borysuk和Marc重构了这个问题:)

不太熟悉
mongodb
,但我只是尝试复制你的问题。在我的返回中,我没有得到这些
get
set
方法,只是一个简单的对象数组。您使用的是哪个版本的node mongodb客户端?我尝试了2.2.11…谢谢你的回答。我使用的投影样式只是一种不同的语法。根据官方文件,我已经更改了它。奇怪的“getter”和“setter”问题仍然存在。可能这只是因为我在Electron渲染器过程中使用了Mongo DB。可能是。因为我从未在mongo看到过这种问题。顺便问一下,您使用哪些模块连接和查询mongodb?它只是普通的mongodb节点模块:“mongodb”:“^2.2.11”Hm.。那么它肯定是electron。它以某种方式为数组中的所有数据添加了getter和setter。你需要看看如何禁用这个behavior.Np.Glat来帮助你。这仍然很奇怪。我的测试是在“渲染”过程中完成的。我只是直接在我的
index.html
中执行
。很高兴你把它分类了。你是直接从渲染器进程还是通过require('electron').remote('mongodb')需要mongodb包?问题是,我需要使用第二个渲染器进程,以便在聚合数据时,另一个窗口和主进程仍然可以运行。