복붙노트

[MONGODB] PHP MongoCursor에서 JSON 데이터를 반환하는 방법

MONGODB

PHP MongoCursor에서 JSON 데이터를 반환하는 방법

나는 MongoDB를 연결하기 위해 PHP를 사용하고 있습니다. 다음과 같이 내 코드입니다.

// connect
$m = new MongoClient($con_string); // connect to a remote host at a given port
$db = $m->main;

$customers = $db->customer->find();

난 내 HTML에 JSON 문서로 $ 고객의 모음을 반환합니다. 나는이 어떻게 할 수 있습니까?

해결법

  1. ==============================

    1.이 두 가지 방법으로 작업을 수행 할 수 있습니다 :

    이 두 가지 방법으로 작업을 수행 할 수 있습니다 :

    echo json_encode(iterator_to_array($customers));
    

    또는 수동으로 스크롤 할 수 있습니다 :

    foreach($customers as $k => $row){
        echo json_encode($row);
    }
    

    MongoDBs의 각 객체는 __toString () 메소드 제대로 값의 표현을 다시 가져에 구현이 있어야합니다.

  2. ==============================

    2.이것은 또한 작동합니다. 그리고 당신은 당신의 JSON을뿐만 아니라 사용자 정의 할 수 있습니다.

    이것은 또한 작동합니다. 그리고 당신은 당신의 JSON을뿐만 아니라 사용자 정의 할 수 있습니다.

        $arr = array();
    
        foreach($customers as $c)
        {
            $temp = array("name" => $c["name"], "phone" => $c["phone"], 
                                                "address" => $c["address"]);
            array_push($arr, $temp);
        }
    
        echo json_encode($arr);
    
  3. ==============================

    3.다른 답변 작동하지만 생성 된 JSON은 다음 양식을 (이 예에서는 내가 당신의 고객을위한 가상의 "이름"필드를 사용)있을 것이라는 점을 알고하는 것이 좋다 :

    다른 답변 작동하지만 생성 된 JSON은 다음 양식을 (이 예에서는 내가 당신의 고객을위한 가상의 "이름"필드를 사용)있을 것이라는 점을 알고하는 것이 좋다 :

    {
        "5587d2c3cd8348455b26feab": {
            "_id": {
                "$id": "5587d2c3cd8348455b26feab"
            },
            "name": "Robert"
        },
        "5587d2c3cd8348455b26feac": {
            "_id": {
                "$id": "5587d2c3cd8348455b26feac"
            },
            "name": "John"
        }
    }
    

    그래서 당신은 개체의 _id가되고 싶지 않아 경우에 대비하여 그 결과 각각의 키는 iterator_to_array에 잘못된 매개 변수를 추가 할 수있는 객체. 귀하의 코드는 다음과 같습니다

    echo json_encode(iterator_to_array($customers, false), true);
    

    이 같은 결과를 생성

    $result = Array();
    foreach ($customers as $entry) {
        array_push($result, $entry);
    }
    echo json_encode($result, true);
    

    이는 JSON 오브젝트의 배열

    [
        {
            "_id": {
                "$id": "5587d2c3cd8348455b26feab"
            },
            "name": "Robert"
        },
        {
            "_id": {
                "$id": "5587d2c3cd8348455b26feac"
            },
            "name": "John"
        }
    ]
    
  4. from https://stackoverflow.com/questions/14232261/how-to-return-json-data-from-php-mongocursor by cc-by-sa and MIT license