php - 单个数组中允许使用相同的键
问题描述
我已经使用 php mongodb 驱动程序使用了 mongodb 数据库。新的 mongodb 驱动程序遵循一些条件来执行查询。在我的代码中,我需要两个 OR 条件。当我在此条件数组中创建一个具有两个 OR 条件的数组时,会附加相同的键。实际上我想在我的数组中使用相同的键
以下是我创建的数组结构:-
Array
(
[listingStatus] => Active
[$or] =>
Array
(
[0] => Array
(
[propertyType.propertyType] => MongoDB\BSON\Regex Object
(
[pattern] => ^single family
[flags] => i
)
)
[1] => Array
(
[propertySubType.propertySubType] => MongoDB\BSON\Regex Object
(
[pattern] => ^single family
[flags] => i
)
)
)
[0] => Array
(
[$or] => Array
(
[0] => Array
(
[address.fullStreetAddress] => MongoDB\BSON\Regex Object
(
[pattern] => ^florida
[flags] => i
)
)
[1] => Array
(
[address.postalCode] => MongoDB\BSON\Regex Object
(
[pattern] => ^florida
[flags] => i
)
)
[2] => Array
(
[address.city] => MongoDB\BSON\Regex Object
(
[pattern] => ^florida
[flags] => i
)
)
[3] => Array
(
[mlsNumber] => MongoDB\BSON\Regex Object
(
[pattern] => ^florida
[flags] => i
)
)
)
)
)
上面是我在这个数组中创建数组,我使用了 array_push 方法,但是 mongodb 需要内部数组之外的第二个 OR 条件,上面的代码返回我在第二个 OR 条件下创建新数组。
以下是我的代码:-
$dataSend = array('listingStatus' => 'Active');
$propCondition[] = array('propertyType.propertyType' => new MongoDB\BSON\Regex("^$text", 'i'));
$propCondition[] = array('propertySubType.propertySubType' => new MongoDB\BSON\Regex("^$text", 'i'));
$dataSend['$or'] = $propCondition;
$nameCondition = [];
$nameCondition[] = array('address.fullStreetAddress' => new MongoDB\BSON\Regex("^$request->list", 'i'));
$nameCondition[] = array('address.postalCode' => new MongoDB\BSON\Regex("^$request->list", 'i'));
$nameCondition[] = array('address.city' => new MongoDB\BSON\Regex("^$request->list", 'i'));
$nameCondition[] = array('mlsNumber' => new MongoDB\BSON\Regex("^$request->list", 'i'));
$dataSend1['$or'] = $nameCondition;
array_push($dataSend, $dataSend1);
print_r($dataSend);
在这里,我在我的第一个数组中创建了数据发送数组,数据发送数组是我的第二个数组,我尝试在第一个数组中推送第二个数组。
我的预期结果是,当数组推送第二个数组不创建数组时,就像一个对象一样推送。在我的数组中,第一个键是列表状态,第二个键是 $or,最后一个键 $or 进入数组实际上它显示在数组外部。
解决方案
推荐阅读
- arrays - 谷歌表格拆分转置加入
- python - 无法从 firebase_admin 导入 firestore
- docker-registry - 如何配置或自定义 Docker Registry 以在标签级别授权访问
- node.js - 为什么这个反应组件不显示加载的内容?
- json - 在 Postgres 中操作嵌套的 JSON
- c# - 为为密码轮换调用的 aws lambda 设置有效负载
- javascript - 如何在 Javascript 中动态生成只有 1 个 div 的彩色圆圈
- html - 如何使用/实现输入标记和自定义 jsx 标记以使用 Highlight.JS 进行语法突出显示?
- android - 如何在android中设置布局高度修复?
- java - 在 Java 中使用 AWS Alexa 启动桌面应用程序