Doctrine 2是否具有內置的upsert功能?它似乎沒有,但我無法找到一個明確的是或否的答案。在Doctrine 2中查找或創建(upsert)功能
如果是這樣,我當然會有興趣看到一個例子和/或一些文檔。
Doctrine 2是否具有內置的upsert功能?它似乎沒有,但我無法找到一個明確的是或否的答案。在Doctrine 2中查找或創建(upsert)功能
如果是這樣,我當然會有興趣看到一個例子和/或一些文檔。
我相信我找到了答案。截至今天(2012年10月15日),有關教義的公開「add upsert support」問題。我認爲如果Doctrine 2確實支持了這張票,這張票還是不會公開的,所以我想這是我的明確答案。
Upsert已經存在於學說中。
使用查詢生成器,你必須設置findAndUpdate()和returnNew()如果你想返回文檔。設置upsert(),你準備好了。
例如:
$documentMannager->createQueryBuilder('App\Domain')
->findAndUpdate()
->returnNew()
->field('_id')->equals($id)
->field('page')->equals($page)
->field('count')->inc(1)
->upsert()
->getQuery()
->execute();
這是我實現剷鬥圖案的方式。
謝謝@Guilherme我會測試這種方法,並會以我的結果回來給你! –
僅適用於ODM,不適用於ORM。 – Im0rtality
正如@ ImOrtality所說,它只能用在Mongo的上下文中,而不能用於SQL數據庫。 – fjcero
我可以看到有一張票,但找不到任何文件?你是否? –
@DimitryK看到我的答案,它已經實施:) –