目前,我运行一个类似于以下内容的 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 似乎恢复了正确的记录,但删除了创建的字段,而不是保持原样。
我尝试添加'created' => $this->getCreated()
到$query和$conditions,都证明不成功。有什么明显的我做错了导致我想单独删除的字段吗?