10
在SQL我可以做類似是否有可能從MongoDB查詢返回計算的字段?
SELECT myNum, (myNum+1) as `increment` FROM myTable
切實做好任意數學等功能,並返回那些在結果中的字段。同樣可以用MongoDB來完成嗎?
db.test.find({}, {_id:1, myNum:1, increment:function() { return this.myNum + 1;}});
這不會像我期望的那樣返回「增量」字段。
我可以在這個主題上找到所有其他相關的問題處理GROUPED查詢,這是不是;我只是在獲取文檔時添加一個「虛擬」字段(客戶端計算?)。或者,這個問題似乎是一個沒有「減少」的「地圖」;每一行都有自己的計算字段。有什麼方法可以將結果作爲結果/遊標返回嗎?
嗯,這看起來很有希望。儘管該文檔列出了2.1版作爲具有該功能的第一個版本,但不是2.2。不幸的是,它沒有'$ count'功能;爲了我的真實世界的目的,我必須對一個子文檔數組進行計數。那和Fedora 16 repos目前只有2.0,所以我可能不得不這樣做客戶端 – MidnightLightning 2012-08-13 12:59:51
@MidnightLightning:你是正確的,聚合框架首次出現在2.1.x開發版本中。 2.2.0將成爲該功能的穩定版/正式版。自7月中旬以來,2.2.0rc0已經[可從mongodb.org/downloads](http://www.mongodb.org/downloads)下載。您無法實現從包含map/reduce的單個文檔計算的字段示例,因爲不會調用reduce()函數,除非地圖爲給定鍵發出多個文檔。 – Stennie 2012-08-13 20:28:12
@MidnightLightning:值得注意的是自2012年8月底以來,[MongoDB 2.2.0正式版發佈](http://docs.mongodb.org/manual/release-notes/2.2/)現已發佈。 – Stennie 2012-09-09 15:13:42