現在、次のようなmongoクエリを実行しています。
$query = array(
'user_id' => $this->getUserId(),
'name' => $this->getName()
);
レコードが存在するかどうかを確認し、存在する場合は更新し、存在しない場合は作成します。
if(is_null($this->getId())) {
$query['created'] = date('Y-m-d H:i:s');
$this->collection->insert($query);
$this->setId($query['_id']);
return true;
} else {
$conditions = array(
'_id' => new \MongoId($this->getId())
);
return $this->collection->update($conditions, $query);
}
現在、レコードが新しい場合、「作成された」日付フィールドが追加されます。ただし、更新を実行すると、mongoDb は正しいレコードを戻すように見えますが、作成されたフィールドをそのままにしておくのではなく削除します。
$queryと$conditionsに追加しようとし'created' => $this->getCreated()
ましたが、どちらも失敗しました。放置したいフィールドを削除する原因となる明らかな間違ったことはありますか?