2015-09-11 64 views
0

我有收集這樣的:如何在mongodb中查找記錄時做一些計算?

{ 
    "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 

我怎麼能做到這一點的殼呢?

回答

3

使用.aggregate()$project階段:

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

.aggregate()方法既具有訪問operators做計算以及以「改變」文檔內容的能力。 .find()方法確實只能「選擇」字段和「篩選」結果。