首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原则ODM重复搜索

原则ODM重复搜索
EN

Stack Overflow用户
提问于 2016-03-11 14:28:45
回答 1查看 326关注 0票数 0

我现在有一个mongo命令在邮件列表集合中运行重复搜索:

代码语言:javascript
复制
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代码非常适合我,但是经过大量搜索后,我无法找到一种方法来使用map reduce函数或任何其他方法正确地转换为Doctrine。

我目前正在使用与Zend 2集成的Doctrine模块。

我找了很远很远的地方,但没有结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 20:04:10

底层doctrine/mongodb包在版本1.2中引入了聚合生成器,虽然它们不是编写的文档,但是您可以查看链接拉请求中的示例,并利用IDE的自动完成功能。

我们的目标是允许将聚合结果的结果添加到文档在ODM中中,但是特性还没有准备好,现在您需要像这样获得构建器(假设MailingEntry是映射的文档)。

代码语言:javascript
复制
$builder = $documentManager->getDocumentCollection(MailingEntry::class)->createAggregationBuilder();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35942730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档