Добавление поддокумента в mongodb 3.6 не работает

Я использую mongodb 3.6 в приложении php. Я добавляю несколько поддокументов ниже строк кода

public function updateCampusDetails()
{
     $this->collection = $this->db->campusDetailsTbl;
     //$bookissuedays = (int)$this->bookissuedays;

     $count = count($this->ContactDetails);

        $document = array
        (
                "CampusName" => $this->CampusName,
                "Logo" => $this->Logo,
                "Description" => $this->Description,
                "Language" => $this->Language,
                "TimeZone" => $this->TimeZone,
                "DateFormat" => $this->DateFormat,
                "ChangeLog" => 
                        array(
                           array(
                                'type' => "Updated",
                                'DateAndTime' => $this->updated_at,
                                'UpdatedBy' => $this->updated_by
                            )
                      )
            );

            $this->collection->updateOne(
                //array('_id' => new MongoDB\BSON\ObjectID($this-`enter code here`>campusId)),
                array(),
                array('$set' => $document)
                );

               $bulkbatch = new MongoUpdateBatch($this->collection);
               for($i=0;$i<$count;$i++)
               {
                  $array = $this->ContactDetails[$i];
                  $contactType = $array->contactType;
                  $contactTypeValue = $array->contactTypeValue;

                    $bulkbatch->add(array(
                       'q' => array(),
                       'u' => array('$set' => array(
                                        'ContactDetails.$.contactType' => $contactType ,
                                        'ContactDetails.$.contactTypeValue' => $contactTypeValue
                 )),
                'multi' => false,
                'upsert' => false,
            ));
        }

        $bulkbatch->execute();
 }

Я хочу сохранить несколько контактных данных в виде подмассива в основной коллекции под названием "campusDetailsTbl", и я использую пакетную, как указано выше. Это не работает в 3.6.

Подскажите пожалуйста, как я буду реализовывать добавление нескольких вложенных документов в коллекцию.

Обратите внимание, что campusDetailsTbl всегда будет содержать только один документ. В этой коллекции некоторые поля были введены значения вручную в первый раз. Теперь нам нужно только обновить их значения и добавить новые суб-документы, такие как контактные данные, через графический интерфейс.

0 ответов

Другие вопросы по тегам