php7 с mongodb как обновить до ключа (содержит точку) - PullRequest
0 голосов
/ 06 июля 2018

Я использую php7.x и Mongodb 3.6.5. и я хочу добавить к моему IP в mongodb как ключ json.

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
$bulk->update(
    ['m_model' => $_POST['mid']],
    ['$set' => ['statistics.play.' . $_SERVER['REMOTE_ADDR'] => 
    ['time'=>$connectionTime]]],
    ['multi' => false, 'upsert' => false]
);
$conn -> executeBulkWrite('db.tempName', $bulk);

Я использую следующий код, он создаст файл json.

enter image description here но я не хочу эту структуру данных.

asdf Я хочу вот так.

Кроме того, я не хочу заменять точку на любые слова или хэш (md5 и т. Д.).

1 Ответ

0 голосов
/ 06 июля 2018

К сожалению, вы не можете сделать это, так как The field names cannot contain the dot (.) character. ( Смотрите здесь ). Поскольку вы не хотите заменять точки принятым символом, единственный способ добиться этого - обновить схему примерно так:

{
  statistics:
    {
      ...,
      play:[{ip:"1.1.1.1",time:"asdf"}]   // <== Note the array
    }
}

Кроме того, в будущем может быть проще запрашивать play.time (время в любой записи массива), чем play.1_1_1_1.time, play.1_1_1_2.time и т. Д. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...