在php

时间:2015-08-02 17:11:27

标签: php mongodb

我想用php显示评论。我的数据库是mongodb,这是我的收藏文章:

{ "_id" : ObjectId("55be4a1a71dd7ecc05b7acd9"), "title" : "test", "content" : "test", "user" : "Paul", "saved_at" : ISODate("2015-08-02T16:49:30.480Z"), "comments" : [ { "comment" : "this is my test", "user" : "Paul" } ], { "comment" : "my second test", "user" : "Paul" } ]  }

所以我想要显示这个评论:"这是我的测试"和#34;我的第二次测试" 我有这个代码,但它没有工作:

  <?php
       try {
           $mongodb = new MongoClient();
           $collection = $mongodb->blog->articles;
         } catch (MongoConnectionException $e) {
           die('Failed to connect to MongoDB '.$e->getMessage());
         }

         $query=array();
         $cursor=$collection->find($query);


         foreach($cursor as $doc){
             echo $doc['comments'];
         }



    ?>

所以当我使用这段代码时,我有这个错误:

  

第86行的数组到字符串转换,它的这一行

echo $doc['comments'];

感谢帮助

1 个答案:

答案 0 :(得分:1)

正如错误所说 - 你正在尝试打印出一个数组,而echo只能打印标量(int,string,float等)。

要快速显示数组,可以使用var_dump(),但不应在生产中使用。相反,您可以迭代这样的评论:

foreach($cursor as $doc)
{
    foreach($docs['comments'] as $comment)
    {
        echo '"' . $comment['comment'] .'" by ' . $comment['user'];
    }
}