在mongodb中查找记录时如何进行一些计算?

时间:2015-09-11 04:25:49

标签: mongodb mongodb-query aggregation-framework

我有这样的集合:

{
    "male_count": 500,
    "female_count": 501
}

现在我想找到male_ratiomale_ratio = male_count /(male_count + female_count)),例如:

select (male_count / (male_count + female_count)) as male_ratio from collection_name

我怎么能在shell中做到这一点?

1 个答案:

答案 0 :(得分:3)

.aggregate()$project阶段一起使用:

db.collection.aggregate([
    { "$project": {
        "male_ratio": {
           "$divide": [
               "$male_count",
               { "$add": [ "$male_count", "$female_count" ] }
           ]
       }
    }}
])

.aggregate()方法既可以访问operators来进行计算,也可以访问"更改"文件内容。 .find()方法实际上只能选择"字段和"过滤"结果