2014-02-10 39 views
0

我想合併mongodb中的文檔和map reduce。 如果在其他文檔中找到相同的名稱鍵,它將按排序順序進行合併,在數組中存在鍵「名稱」。mongodb在php中合併文檔

示例 - 輸入蒙戈分貝文件有4行

$data[0]['name'] = "mango"; 
$data[0]['price'][0]['premium'] = 10; 
$data[0]['price'][1]['standard'] = 20; 

$data[1]['name'] = "apple"; 
$data[1]['price'][0]['deluxe'] = 500; 
$data[1]['price'][1]['good'] = 700; 

$data[2]['name'] = "mango"; 
$data[2]['price'][0]['good'] = 300; 

$data[3]['name'] = "apple"; 
$data[3]['price'][0]['premium'] = 100; 
$data[3]['price'][1]['standard'] = 200; 

輸出合併後,這將是兩排

$data[0]['name'] = "mango"; 
$data[0]['price'][0]['premium'] = 10; 
$data[0]['price'][1]['standard'] = 20; 
$data[0]['price'][2]['good'] = 300; 

$data[1]['name'] = "apple"; 
$data[1]['price'][0]['premium'] = 100; 
$data[1]['price'][1]['standard'] = 200; 
$data[1]['price'][2]['deluxe'] = 500; 
$data[1]['price'][3]['good'] = 700; 

這可能與MongoDB的?

回答

1

這是非常簡單,聚合框架是這樣做的:

db.test.aggregate([{$unwind: '$price'}, {$group: {_id: '$name', price: {$push: '$price'}}}]) 
+0

由於其工作。 –