本文整理汇总了PHP中Elastica\Document::setUpsert方法的典型用法代码示例。如果您正苦于以下问题:PHP Document::setUpsert方法的具体用法?PHP Document::setUpsert怎么用?PHP Document::setUpsert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Elastica\Document
的用法示例。
在下文中一共展示了Document::setUpsert方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testUpdateDocumentByDocumentWithUpsert
/**
* @group functional
*/
public function testUpdateDocumentByDocumentWithUpsert()
{
$index = $this->_createIndex();
$type = $index->getType('test');
$client = $index->getClient();
$newDocument = new Document(1, array('field1' => 'value1updated', 'field2' => 'value2updated'));
$upsert = new Document(1, array('field1' => 'value1', 'field2' => 'value2'));
$newDocument->setUpsert($upsert);
$client->updateDocument(1, $newDocument, $index->getName(), $type->getName(), array('fields' => '_source'));
$document = $type->getDocument(1);
$this->assertInstanceOf('Elastica\\Document', $document);
$data = $document->getData();
$this->assertArrayHasKey('field1', $data);
$this->assertEquals('value1', $data['field1']);
$this->assertArrayHasKey('field2', $data);
$this->assertEquals('value2', $data['field2']);
// should use update document because document exists, upsert document values are ignored
$client->updateDocument(1, $newDocument, $index->getName(), $type->getName(), array('fields' => '_source'));
$document = $type->getDocument(1);
$this->assertInstanceOf('Elastica\\Document', $document);
$data = $document->getData();
$this->assertArrayHasKey('field1', $data);
$this->assertEquals('value1updated', $data['field1']);
$this->assertArrayHasKey('field2', $data);
$this->assertEquals('value2updated', $data['field2']);
}
示例2: testUpsert
/**
* @group unit
*/
public function testUpsert()
{
$document = new Document();
$upsert = new Document();
$upsert->setData(array('someproperty' => 'somevalue'));
$this->assertFalse($document->hasUpsert());
$document->setUpsert($upsert);
$this->assertTrue($document->hasUpsert());
$this->assertSame($upsert, $document->getUpsert());
}