有的时候,我们知道MongoDB的查询json是什么样的,但是到PHP的数组中,就很容易写错了。
比如:$elemMatch这个查询操作符。
$elemMatch 数组查询操作用于查询数组值中至少有一个能完全匹配所有的查询条件的文档。语法格式如下:
{ <field>: { $elemMatch: { <query1>, <query2>, ... } } }
限制
- 不能指定 $where 查询条件在 $elemMatch 内;
- 不能指定 $text 查询条件在 $elemMatch 内;
于是看到个示例:
db.user.find(
{Type: {"$in": ["local","google"]},
Alerts:{$elemMatch:{"Frequency.Type":"daily","IsActive":true}}
})
这个查询如何转为PHP的查询数组呢?
有个答案给了个思路,直接用
var_export(json_decode(
'{
"Type": {"$in": ["local","google"]},
"Alerts":{ "$elemMatch": {"Frequency.Type":"daily","IsActive":true}}
}',true));
就可以得到:
array (
'Type' => array ( '$in' => array ( 0 => 'local', 1 => 'google', ), ),
'Alerts' => array ( '$elemMatch' => array (
'Frequency.Type' => 'daily',
'IsActive' => true,
), ),
)
这就是查询数组的指令了。
相关参考:
elemMatch query does not work in php
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。
留言