【问题标题】:Calling Mongodb stored functions on an insert in php在 php 中的 insert 上调用 Mongodb 存储的函数
【发布时间】:2017-04-01 10:15:40
【问题描述】:

我在 Laravel 中使用 Mongodb 3.2 和 PHP 和 Jensseger laravel-mongodb,文档在这里:https://github.com/jenssegers/laravel-mongodb

我通过这段代码插入数据,它工作正常:

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

但是,我想使用我在 mongo 中创建的函数,而不是“_id”中的“1”,当通过命令行插入时,我通常会使用它,效果很好:

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

如何使用“getNextId()”的相同函数通过php插入mongo?

【问题讨论】:

标签: php mongodb jenssegers-mongodb


【解决方案1】:

这是一个使用 Jenssegers 库的示例:

$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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-13
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    相关资源
    最近更新 更多