php:将mongodb嵌入式文档查询到数组中

悬崖恩尼斯

我有一个数据库需要查询,我需要将所有结果从嵌入式文档中获取到数组中,以便将其存储到php中的变量中。这是mongodb的记录如下所示:

{
        "_id" : ObjectId("987654321"),
        "roles" : {
               "988434fe-9ac8-390f-abb4-18e4a0cc83fd" : 9,
               "fc261c0f-7124-3c81-89e8-ecb33771fe4e" : 9
        },
        "groupType" : "PUBLIC_GROUP",
        "name" : "Service Tech Role",
        "type" : "usergroup"
}

我可以使用下面的PHP函数从该文档中获取所有信息,嵌入式文档数据除外。

function getPerms()
  {
    $m = new MongoClient ("mongodb://localhost" );
    $db = $m->test;
    $collection = $db->roles;
    $query = array( '_id' => $_SESSION['groupId'] );
    $cursor = $collection->find( $query );
    foreach ($cursor as $document) {
      $_SESSION['object_permissions'] = $document["roles"];
    }
  }

我需要的是在数组中设置“角色”数据,如下所示:

988434fe-9ac8-390f-abb4-18e4a0cc83fd,9
fc261c0f-7124-3c81-89e8-ecb33771fe4e,9

将嵌入式文档放入数组中需要做些什么,以便将它们作为会话变量存储在php中?

卡维海豹

我认为您的错误在其他地方,它可能更多是与查询返回零文档有关,或者角色数据首先是空数组,或者角色数据不存在并且您有未定义的索引错误。

您能否证明可以从该文档中获取除嵌入式文档数据以外的所有信息?做一个var_dump($document)循环内。

我怀疑您的脚本可能甚至没有进入foreach循环。您可能需要检查mongodb查询错误,或者尝试将查询修改或删除作为测试。

旁注:您还应该为此使用findOne而不是find()

$document = $collection->findOne($query);
$_SESSION['object_permissions'] = $document['roles'];

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Mongoid:基于嵌入式文档数组的大小查询

将嵌入式文档插入到mongodb文档中的新字段

MongoDB $ project嵌入式文档到根级别

查询嵌入式文档数组给出错误答案

基于范围查询MongoDB中嵌入式文档的数组

MongoDB查询以查找多个嵌入式文档

复杂查询猫鼬-嵌入式文档数组

将嵌入式文档数组转换为mongoDB中的元素数组

查询Spring Data MongoDB中嵌入式文档的数组

在mongoDb中对嵌入式文档数组(3个级别)进行过滤查询

MongoDB查询-聚合和嵌入式文档

如何从嵌入式文档数组将mongodb中的ISO日期转换为'yyyy-mm-dd hh:mm:ss'?

嵌入式文档数组中的MongoDB Aggregate ObjectId

如何在嵌入式数组mongodb中查询嵌入式文档

使用Presto查询MongoDB嵌入式/嵌套文档的数组

MongoDB:与查询不匹配的嵌入式文档

MongoDB嵌入式文档自我查询

如何使用Mongoose将值推入MongoDB中嵌入式文档中的数组?

查询MongoDB中的嵌入式文档

在文档中引用文档的嵌入式数组的嵌入式数组上查询Doctrine2和MongoDB

春季查询嵌入式文档的数组

如何在MongoDB中查询数组中的单个嵌入式文档?

在mongodb中展开嵌入式文档

使用C#在MongoDB集合中的嵌入式文档的子句查询中的投影

如何查询Mongodb的嵌入式数组

Mongodb:将字段添加到嵌入式文档中(无数组)

如何将现有的子文档推送到MongoDB中的嵌入式数组中?

如何在 MongoDb 中查询嵌入式文档?

Hibernate repo 查询以访问 mongodb 嵌入式文档