php mongodb array_unique无法在游标中工作

时间:2016-04-25 17:58:21

标签: php mongodb foreach

我有以下代码生成角色列表:

array_unique

$ curr_org ['role']中包含的数据中包含重复数据。

我一直在搞{ "_id" : ObjectId("571626ac768d884c268b456b"), "name" : "John Doe", "email" : "jack@daniels.com", "manager" : "Jack Daniels", "role" : "Boss Man", "password" : "$2y$10$Bk8kVZaa0K.AJ7GqWT65LuTkWYVtNw8jK6Am5izcnvHAVBIxj5VHC", "organization" : "MyOrg" } 而无法找到'role'的值(获取数组或NULL),或者我得到了第一个和最后一个值(id和组织)。< / p>

我的示例文档是:

array_unique

任何人都可以告诉我应该在循环中添加Boss Man Boss Expeditor Shift Manager Ditch Digger Boss CEO CEO Expeditor 的位置,以便我只生成一个独特角色列表吗?

最诚挚的问候, 丹尼斯霍尔

更新: 然而,使用distinct似乎有效,它只回显每个角色的第一个字符如下:

使用查找:

B
B
E
S
D
C

使用Distinct:

$cursor = $collection->distinct('role', array("organization" => $curr_org['organization'], "role" => array('$exists' => true)));
foreach($cursor as $curr_org){
    echo '<ul>';
         echo '<li>';
              echo $curr_org;
         echo '</li>';
    echo '</ul>';
}

解决: 解决方案是在cursor命令中使用“distinct”。同样在游标命令和循环中定义键会导致结果截断为单个字母。在循环中,解决方法是从echo $ curr_org ['role']中删除['role'];线。工作代码如下:

<div>
  <img ng-src="{{img(color)}}" ng-if="color">
</div>

1 个答案:

答案 0 :(得分:0)

如果你关心的是角色,你可以使用MongoCollection::distinct

$roles = $collection->distinct('role', array("organization" => $curr_org['organization']);