首页 > 解决方案 > 学说 Mongo 搜索

问题描述

在 Mongo DB 手册页上,它说,“要匹配一个短语,而不是单个术语,请将短语括在转义的双引号 (\") 中

"\"ssl 证书\""

如何使用 Doctrine 查询生成器执行此操作?目前,我进行如下查询:

$name = '\"'.$name.'\"';
$qb->field('entityName')->text($name)->getQuery()->toArray();

以上 Doctrine 查询返回空 [],Doctrine 使用的查询如下:

array:5 [
    "type" => 1
    "select" => array:1 [
        "entityName" => 1
    ]
    "limit" => 10
    "query" => array:1 [
        "$text" => array:1 [
        "$search" => "\"oxford tru\""
        ]
    ]
    "newObj" => []
]

如果我在 mongo shell 中进行查询,

db.collection.find({$text: {$search: "\"oxford tru\""}},{entityName:1})

以上 mongo shell 命令返回 5 个结果

标签: mongodbmongodb-querydoctrine-odm

解决方案


尝试$name = '"'.$name.'"';没有必要在其中转义"'与在 mongo shell 中转义引号相反"


推荐阅读