2016-11-20 52 views
1

我正在開發一個利用MongoDB來存儲大量數據集的NodeJs應用程序。數據使用「.find」或「.findOne」查詢功能進行檢索。NodeJs MongoDb沒有獲取者和設置者的結果

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

collection.find({}, {fields: ['header']}).toArray() 
    .then(documents => { 
     console.log(documents); 
     resolve(documents); 
    }) 
    .catch(error => reject(error)); 

的應用是建立使用電子JS,所以我能夠通過Chrome開發者工具來檢查數據:

The console ouput 說完這些getter和setter方法使應用程序相當緩慢。由於該數據是在D3-圖也可見,我想出了這個奇特的解決方案,以消除所有的功能:

JSON.parse(JSON.stringify(documents)) 

沒有這個額外的步驟圖表開始口吃。

有沒有更好的方法來檢索原始結果,而無需循環遍歷所有文檔以去除不必要的getter和setter函數?

謝謝。

+2

不是過於熟悉'mongodb'但我只是試圖複製你的問題。我沒有在我的迴歸中獲得這些'get'和'set'方法,只是一個平面的對象數組。您使用的是什麼版本的mongodb節點客戶端?我試着用2.2.11 ... – Mark

回答

2

問題肯定不在mongo。林還與這條線{fields: ['header']}混淆。

如果你想你需要這樣的查詢

collection.find({}, {'header': 1, _id: 0}).toArray()只是頭字段。

https://docs.mongodb.com/v3.0/tutorial/project-fields-from-query-results/

希望這有助於。

+0

謝謝你的回答。我使用的投影風格只是一種不同的語法。我已經根據官方文件改變了它。 奇怪的「getter」和「setter」問題仍然存在。也許這只是因爲我在Electron渲染器進程中使用Mongo DB而發生的。 –

+0

可能。因爲我從來沒有在Mongo中看到過這種問題。 Btw你用什麼模塊來連接和查詢mongodb? –

+0

它只是簡單的mongodb節點模塊:「mongodb」:「^ 2.2.11」 –

0

我得到了解決以下這篇文章的建議後: https://stackoverflow.com/a/38490959/1292336

如果直接連接的電子渲染過程蒙戈數據庫只出現問題。 您應該使用主進程並使用ipc傳輸每個查詢的結果。

感謝尼古拉Borysyuk和Marc重建問題:)

+0

Np.Glat幫助你。 –

+0

這仍然很奇怪。我的測試是在「渲染」過程中完成的。我只是'

  • 11. 自定義類的獲取者和設置者
  • 12. 父類中的獲取者和設置者
  • 13. 獲取者和設置者的首選Qt風格
  • 14. 主義覆蓋關係字段的獲取者和設置者
  • 15. slick 2d,Java,動畫獲取者和設置者
  • 16. Laravel - 爲獲取者和創建者設置3個函數
  • 17. Luabind屬性獲取者和設置者可以產生?
  • 18. 抽象類與抽象獲取者和設置者
  • 19. Android開發者:避免內部獲取者/設置者?
  • 20. 生產者消費者沒有給出想要的結果
  • 21. 同步屬性獲得者/設置者
  • 22. 重寫繼承的獲取者/設置者
  • 23. Haxe到SWC - 受保護的獲取者/設置者
  • 24. c中的獲取者和安裝者#
  • 25. 在Cocoa中獲取並設置所有者,組和權限
  • 26. 如果沒有設置所有者,則使用環回ACL
  • 27. EntityFramework Code首先對屬性獲取者/設置者做什麼?
  • 28. 防止爲@Transient字段生成獲取者/設置者
  • 29. 注入/處理屬性獲取者/設置者?
  • 30. 受益於Play中產生的獲取者和設置者!框架