承诺:我是MongoDB的初学者
这是mongodb文件:
{ "_id" : ObjectId("5ed7643985b9e34fa96fa2dc"), "message" : "{\"data\":\"2020-06-03T08:50:01.075289Z\",\"users\":\"37\",\"azione\":\"Inserimento prima Scheda di Controllo\",\"soggetto\":\"schede_gravidanza\",\"oggetto\":[{\"id\":47},{\"codiceScheda\":\"2020TF63001\"},{\"codiceGravidanza\":\"TF63\"},{\"stato\":\"O\"},{\"peso\":\"70\"},{\"paMax\":\"70\"},{\"paMin\":\"80\"},{\"fc\":\"90\"},{\"codUteIns\":\"9310\"}]}", "context" : [ ], "level" : 200, "level_name" : "INFO", "channel" : "PREG", "datetime" : "2020-06-03 10:50:01", "extra" : [ ] }
这使我无需解码json就可以直接访问字段,例如:
message.data,message.oggetto.id等
因为我目前被迫使用正则表达式来选择具有“ where”条件的数据。
示例:
$repo = $mongodb->getRepository('LogBundle:Log');
$mongodata = $repo->findBy(
[
'channel' => ['$regex' => 'CARD|PREG'],
'datetime' => ['$gt' => $this->parameters['data_from'], '$lt' => $this->parameters['data_to']],
'message' => [
'$regex' => '(\"users\":\"(' . implode("|", $this->fullParameters['doctors']) . ')\")(.*\"Inserimento (prima|nuova) Scheda di Controllo\")'
],
],
array("datetime" => "DESC")
);
提前谢谢