我有一个文档是在field delimeter
每个用户的一周的弱基础(保留日期)上创建的。每次用户会话到期时,我都会检查用户是否有该特定周的文档(这样所有更新都不会失败)
我试图避免 2 次提取:1)
一次提取以检查文档是否存在,2)
创建另一个查询来创建或不创建该文档,具体取决于它是否已经存在
我想知道是否有这样的功能mongo
......如果不存在则创建,否则什么都不做?
目前,upsert
inserts
如果它不存在或updates
存在。因此,不是一个有效的解决方案。我需要 if ( !exist){ update/insert ) else { do nothing }
public function createUserSocialWallForUser( MongoId $userMongoID, $delimeter ) {
$db = $this->db()->socialWall;
$where = array( 'userId' => $userMongoID,
'delimeter' => $delimeter
);
$data = array( 'userId' => $userMongoID, 'delimeter' => $delimeter, 'event' => array() );
$option = array ('upsert' => true);
$db->update( $where, $data, $option);
}