使用php搜索mongodb集合中的特定键
我有这个mongodb系列使用php搜索mongodb集合中的特定键,php,mongodb,search,Php,Mongodb,Search,我有这个mongodb系列 { "_id" : "3", "SETTINGS" : { "PRIVACY" : { "ALLOW_SUGGESTIONS" : NumberLong(1), "BIRTHDAY" : NumberLong(0), "CONTACT_INFO" : { "PHONE" : NumberLong(0), "ADDRESS" : NumberLong(0)
{
"_id" : "3",
"SETTINGS" : {
"PRIVACY" : {
"ALLOW_SUGGESTIONS" : NumberLong(1),
"BIRTHDAY" : NumberLong(0),
"CONTACT_INFO" : {
"PHONE" : NumberLong(0),
"ADDRESS" : NumberLong(0)
},
"SEARCH_ENGINE" : NumberLong(0)
}
}
我试着用php搜索手机
。问题是,我尝试过的所有代码都会取出一个文档,然后我必须自己从文档中取出钥匙电话
我的尝试是:-
$cursor=$collection->find(array('_id'=>'3'),array('SETTINGS'=>array('PRIVACY'=>array('CONTACT_INFO'=>array('PHONE')))));
foreach($cursor作为$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))
此代码将使用phone equal0
要仅返回电话,您必须使用:
编辑:根据您的问题版本,如果您提供所需输出的代码示例以及所尝试输出的代码,您将更容易获得。您可以尝试:
$db->$collection->find(array('SETTINGS.PRIVACY.CONTACT_INFO.PHONE' => 0))
此代码将使用phone equal0
要仅返回电话,您必须使用:
编辑:根据您问题的版本,如果您编辑您的问题以显示您的尝试,则会更好。@chridam我只找到了提取特定文档的方法,而没有提取嵌套在文档深处的键。所以,我这样做的尝试是相当蹩脚的,先生。你能建议一个解决方法吗?如果你编辑你的问题以显示你的尝试,那会更好。@chridam我只找到了提取特定文档的方法,而没有提取嵌套在文档深处的键。所以,我这样做的尝试是相当蹩脚的,先生。你能建议一条出路吗?那正是我要找的。现在它适合我了。这就是我一直在寻找的东西。现在它对我有用了。