请求将MongoDB的$where查询语句转换为PHP语法
将MongoDB $where查询转换为PHP代码
没问题,我帮你把这个遍历dataObj字段匹配文本的MongoDB查询,严格按照原逻辑转换成PHP代码:
<?php // 假设已经通过MongoDB PHP驱动建立了连接 $client = new MongoDB\Client("mongodb://localhost:27017"); $collection = $client->yourDatabase->pos; // 替换成你的实际数据库名 // 构造$where查询的JavaScript函数,和原逻辑完全一致 $whereFunc = new MongoDB\BSON\JavaScript('function () { var searchItem1 = /Hi/g; for (var key in dataObj) { var valueList = dataObj[key]; if (searchItem1.test(valueList)) { return true; } } return false; }'); // 执行查询 $cursor = $collection->find(['$where' => $whereFunc]); // 遍历并处理匹配到的文档 foreach ($cursor as $document) { var_dump($document); // 可根据需求替换为自定义处理逻辑 } ?>
关键细节说明:
- 这里使用
MongoDB\BSON\JavaScript类封装查询函数,是PHP驱动中传递$where JavaScript逻辑的标准方式,能确保MongoDB服务端正确执行这段代码。 - 代码逻辑和你提供的MongoDB原生查询完全一致:遍历
dataObj的所有字段,用全局正则/Hi/g测试字段值,只要有一个匹配就返回true,否则返回false。 - 记得把代码中的
yourDatabase替换成你实际使用的数据库名称。
内容的提问来源于stack exchange,提问作者Jehad Aldahdooh
相关产品推荐
相关产品推荐

