2016-03-11 88 views
0

我現在有一個蒙戈shell命令來運行一個郵件列表集合的重複搜索:主義蒙戈ODM重複的搜索

var duplicates = []; 

db.mailing_entries.aggregate([ 
    { $group: { 
    _id: { full_name: "$full_name", business: "$business", address_line_1: "$address_line_1", postal_code: "$postal_code" }, 
    dups: { $addToSet: "$_id" }, 
    count: { $sum: 1 } 
    }}, 
    { $match: { 
    count: { $gt: 1 } 
    }} 
]) 
.result   
.forEach(function(doc) { 
doc.dups.shift(); 
doc.dups.forEach(function(dupId){ 
    duplicates.push(dupId); 
    } 
) 

}); 
printjson(duplicates); 

shell代碼工作完美的我,不過,經過一番搜索,我不能找到一種方法,使用地圖縮小功能或任何其他方法正確轉換爲Doctrine Mongo ODM。

我目前使用我已搜查甚廣,但無濟於事與Zend框架2.

綜合學說蒙戈ODM模塊。

回答

0

標的doctrine/mongodb包在1.2版本中引入aggregation builder,雖然他們沒有寫成的又文檔,你可以在鏈接上拉請求的例子來看看,並充分利用IDE的自動完成的。

我們的目標是允許的彙總結果的保溼效果到文檔in ODM,但功能還沒有準備好而現在你需要獲得這樣的建設者(假設MailingEntry是你的映射文件)

$builder = $documentManager->getDocumentCollection(MailingEntry::class)->createAggregationBuilder();