繁体   English   中英

使用 php 打印文档的 mongodb 数组字段值

[英]print mongodb array field values of document using php

嗨,我有一个 mongodb 数据库,我在其中存储产品,每个产品文档如下所示:

在此处输入图像描述

使用 php 我想从"comments"数组中打印"user"的所有实例我尝试了什么:

$collection=$db->products;

  $itemID = $_POST['itemID'];

  $cursor = $collection->findOne(["id"=>$itemID]); //find an item 
  //print all user names who commented on item 
  foreach($cursor['comments'] as $c){
          echo "<p> User : ".$c["user"]." </p>";
          }
  ";
  exit();

我得到:

Warning:  Invalid argument supplied for foreach()

这是我第一次这样做,非常感谢您的帮助

  1. 来自 findOne() 文档:与 MongoCollection::find() 不同,此方法将仅返回结果集中的第一个结果,而不是可以迭代的 MongoCursor。

(如果要使用 forEach 构造进行迭代,则需要使用 find().limit(1) 来获取单个文档,或者必须删除 forEach 方法才能使用 findOne() )

  1. 如果您需要遍历评论数组元素并且在数据库中没有找到任何内容,这将是一个问题,因此您需要先检查评论是否存在......

  2. 在结束行之前有 '";' 似乎需要删除......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM