[英]search a particular key in mongodb collection using php
我有这个mongodb集合。
{
"_id" : "3",
"SETTINGS" : {
"PRIVACY" : {
"ALLOW_SUGGESTIONS" : NumberLong(1),
"BIRTHDAY" : NumberLong(0),
"CONTACT_INFO" : {
"PHONE" : NumberLong(0),
"ADDRESS" : NumberLong(0)
},
"SEARCH_ENGINE" : NumberLong(0)
}
}
我尝试使用php搜索PHONE
。 问题是我尝试过的所有代码都取出一个文档,然后我必须自己从文档中取出密钥PHONE
。
我的尝试是:-
$cursor=$collection->find(array('_id'=>'3'),array('SETTINGS'=>array('PRIVACY'=>array('CONTACT_INFO'=>array('PHONE')))));
foreach ($cursor as $document) { echo var_dump($document); }
它给我输出:
Fatal error: Uncaught exception 'MongoCursorException' with message 'localhost:27017: Can't canonicalize query: BadValue Unsupported projection option: SETTINGS: { PRIVACY: { CONTACT_INFO: [ "PHONE" ] } }' in /var/www/html/ProjectTest/include/Profile Helper.php:114 Stack trace: #0 /var/www/html/ProjectTest/include/Profile Helper.php(114): MongoCursor->rewind() #1 /var/www/html/ProjectTest/profile.php(14): Profile->GetProfileInfo() #2 {main} thrown in /var/www/html/ProjectTest/include/Profile Helper.php on line 114
如果您提供所需输出的代码示例以及尝试的代码,本来会更容易。 你可以试试:
$db->$collection->find(array('SETTINGS.PRIVACY.CONTACT_INFO.PHONE' => 0))
此代码将为您提供电话等于0
的文档
要只退回电话,您必须使用投影 :
$db->$collection->find(array('SETTINGS.PRIVACY.CONTACT_INFO.PHONE' => 0), array('_id' => 0, 'SETTINGS.PRIVACY.CONTACT_INFO.PHONE' => 1))
编辑:根据您的问题的版本,您缺少点符号
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.