2011-11-07 34 views
0

如何創建一個查詢,該查詢返回父項的 名稱所計算的post_ids對象。如何在MongoDB中做到這一點?我從SQL切換,我 在這個問題上失去了很多時間。如何計算外鍵和按名稱分組? MongoDB map/reduce?

的對象之一:

{ "_id" : ObjectId("4eb69c58b51ab1070e000024"), 
    "name" : "ruby", 
    "post_ids" : [ 
    ObjectId("4eb69c58b51ab1070e000023"), 
    ObjectId("4eb69c60b51ab1070e000026"), 
    ObjectId("4eb69c69b51ab1070e000027"), 
    ObjectId("4eb69c6fb51ab1070e000028"), 
    ObjectId("4eb69c7db51ab1070e000029") ] } 

預期的效果:

{"name":"ruby","count":"5", "post_ids":["4eb69c58b51ab1070e000023", 
"4eb69c60b51ab1070e000026", "4eb69c69b51ab1070e000027", 
"4eb69c6fb51ab1070e000028", "4eb69c7db51ab1070e000029"]} 

回答

1

此代碼是未經測試,可能需要一些調整:

db.articles.group({ 
    key: { name:true }, 
    reduce: function(obj,prev) { prev.total_posts += obj.post_ids.length; }, 
    initial: { total_posts: 0 } 
});