Добавление поддокумента в 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 всегда будет содержать только один документ. В этой коллекции некоторые поля были введены значения вручную в первый раз. Теперь нам нужно только обновить их значения и добавить новые суб-документы, такие как контактные данные, через графический интерфейс.