2016-11-17 20 views
1

我使用MongoDB的3.2 PHP在Laravel與Jensseger laravel-MongoDB中,文檔瀏覽:https://github.com/jenssegers/laravel-mongodb調用上插入存儲的MongoDB函數在PHP

我通過這段代碼插入數據並能正常工作:

$clientes = DB::connection(env('DB_DATABASE'))->collection('catalogo_clientes'); 
$clientes->insert(array("_id" => "1", "nombre" => "test", "disponible" => 1)); 

然而,我想在「_id」,通過命令行插入時我通常利用這一點,工作正常使用我在蒙戈,而不是「1」創建的函數:

db.loadServerScripts(); 
db.catalogo_clientes.insert(
    { 
     _id: getNextId("clientes"), 
     nombre: "Bob X.", 
     disponible: 1 
    } 
) 

如何使用「getNextId()」的相同函數通過php插入到mongo中?

+0

的可能的複製[MongoDB的PHP驅動程序:使用執行了存儲JS] (http://stackoverflow.com/questions/20242361/mongodb-php-driver-using-execute-for-stored-js) –

+0

我通過插入運行一個函數,我也看到了這個問題,但它沒有解決我的問題:( –

回答

1

這是使用Jenssegers' LIB一個例子:

$result = DB::collection('YOUR_COLLECTION')->raw(function($collection) use ($folio, $name, $type, $entrega_digital, $motivo_rechazado) 
{ 
    return $collection->updateOne(
    array('Folio' => (int)$folio, 'documentos_'.$type.'.nombre' => $name), 
    array(
     '$set' => array('documentos_'.$type.'.$.entrega_digital' => $entrega_digital, 'documentos_'.$type.'.$.motivo_rechazado' => $motivo_rechazado) 
     ) 
    ); 
}); 

隨着光標,你可以使用所有的本地方法:https://docs.mongodb.com/manual/