Вставьте JSON в Mongodb из php7 - PullRequest
0 голосов
/ 11 июня 2018

Я работаю над проектом миграции с php5.6 на 7.x, в котором у меня есть json со специальными символами в ключах.Как я могу вставить это в mongodb?

В php5.6 я использовал MongoClient в качестве драйвера, который внутренне преобразует специальные символы, и, следовательно, я смог вставить документ.Но я не могу добиться того же в php7.Я использую MongoDB \ Driver \ Manager для подключения к Mongodb.

РЕДАКТИРОВАТЬ:

У меня есть набор API, поступающих из другой системы с форматом ниже

$content_array=
{
    "context": {
        "extensions": {
            "http://id.tincanapi.com/extension/platform": "web",
            "http://id.tincanapi.com/extension/browser-info": "Mozilla/5.0",
            "http://id.tincanapi.com/extension/host-session-id": "4e320015"
        }
    }
}
$dbconnection = new MongoDB\Client($uri);
$db = $dbconnection->$dbname;
$collection = $db->$dbcoll;

$collection->insertOne(json_decode($content_array));

В приведенном выше тексте ничего не говорится: «Недопустимый документ для вставки: ключи не могут содержать \». \ ": В ключе».Я понимаю, что не рекомендуется использовать эти символы в ключе, так как этот фрагмент кода работает в php5.6 с использованием MongoClient, я хотел сохранить как можно меньше изменений при переходе на php7.

РЕДАКТИРОВАТЬ 2:

Кусок кода, который работает в php5.6

$dbconnection = new \MongoClient($dbhost, $options); 
if (!empty($dbconnection)) {
$db = $dbconnection->selectDB($dbname);
$collection = $db->selectCollection($dbcoll);
$status = 0;
if (!empty($collection)) {
$collection->insert(json_decode($content_array));
$status = 1;
}

EDIT3:

часть меня была не права, не давая все детали сразу ..я делаю json_decode для преобразования в собственный массив php перед вставкой в ​​mongo.

Любая помощь будет принята с благодарностью.Спасибо.

...