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