询问如何编写php语法来查询mongo obj

询问如何编写php语法来查询mongo obj,php,mongodb,Php,Mongodb,如何编写php语法来查找tel字段中包含'910'的mongo对象 { _id: ObjectId("531aabd8a6ddc85421ad9d4d"), IDcard: "", address: "", birthdate: "", code: "109901", company: "Beger", created: "09-07-2014", email: "", gender: "Male", group:

如何编写
php
语法来查找tel字段中包含
'910'
mongo
对象

{
    _id: ObjectId("531aabd8a6ddc85421ad9d4d"),
    IDcard: "",
    address: "",
    birthdate: "",
    code: "109901",
    company: "Beger",
    created: "09-07-2014",
    email: "",
    gender: "Male",
    group: "531434e6a6ddc80a565b3deb",
    name: "John Henry",
    note: "",
    photo: "",
    tel: {
        mobile: "0872223910",
        home: "083772771"
    },
    type: "D"
}
您似乎需要以下查询:

db.collection.find({
“$or”:[
{“tel.mobile”:{“$regex”:“910”},
{“tel.home”:{“$regex”:“910”},
]
})
或者直接使用PHP语法:

$collection->find(数组)(
“$或”=>数组(
数组('tel.mobile'=>数组('$regex'=>'910')),
数组('tel.home'=>数组('$regex'=>'910'))
)
));
它与运算符相结合,允许在任一字段上进行可能的匹配

使用的查询在没有锚定字段开头的情况下效率不高,但本质上是如何在字符串的“部分”中查找内容

还强烈推荐一个基本的代码段,因为您将发现的大多数示例都是适用于MongoDB shell的JSON语法:

print_r(json_decode($json));
您似乎需要以下查询:

db.collection.find({
“$or”:[
{“tel.mobile”:{“$regex”:“910”},
{“tel.home”:{“$regex”:“910”},
]
})
或者直接使用PHP语法:

$collection->find(数组)(
“$或”=>数组(
数组('tel.mobile'=>数组('$regex'=>'910')),
数组('tel.home'=>数组('$regex'=>'910'))
)
));
它与运算符相结合,允许在任一字段上进行可能的匹配

使用的查询在没有锚定字段开头的情况下效率不高,但本质上是如何在字符串的“部分”中查找内容

还强烈推荐一个基本的代码段,因为您将发现的大多数示例都是适用于MongoDB shell的JSON语法:

print_r(json_decode($json));
您似乎需要以下查询:

db.collection.find({
“$or”:[
{“tel.mobile”:{“$regex”:“910”},
{“tel.home”:{“$regex”:“910”},
]
})
或者直接使用PHP语法:

$collection->find(数组)(
“$或”=>数组(
数组('tel.mobile'=>数组('$regex'=>'910')),
数组('tel.home'=>数组('$regex'=>'910'))
)
));
它与运算符相结合,允许在任一字段上进行可能的匹配

使用的查询在没有锚定字段开头的情况下效率不高,但本质上是如何在字符串的“部分”中查找内容

还强烈推荐一个基本的代码段,因为您将发现的大多数示例都是适用于MongoDB shell的JSON语法:

print_r(json_decode($json));
您似乎需要以下查询:

db.collection.find({
“$or”:[
{“tel.mobile”:{“$regex”:“910”},
{“tel.home”:{“$regex”:“910”},
]
})
或者直接使用PHP语法:

$collection->find(数组)(
“$或”=>数组(
数组('tel.mobile'=>数组('$regex'=>'910')),
数组('tel.home'=>数组('$regex'=>'910'))
)
));
它与运算符相结合,允许在任一字段上进行可能的匹配

使用的查询在没有锚定字段开头的情况下效率不高,但本质上是如何在字符串的“部分”中查找内容

还强烈推荐一个基本的代码段,因为您将发现的大多数示例都是适用于MongoDB shell的JSON语法:

print_r(json_decode($json));
在PHP中,您可以使用

$search=newmongoregex(“/910/”);
$cursor=$collection->find(数组)(
“$或”=>数组(
数组(“tel.mobile”=>$search),
数组(“tel.phone”=>$search)
)
));
回声“;
foreach($cursor作为$value){
打印(价值);
}
回声“;
在PHP中,您可以使用

$search=newmongoregex(“/910/”);
$cursor=$collection->find(数组)(
“$或”=>数组(
数组(“tel.mobile”=>$search),
数组(“tel.phone”=>$search)
)
));
回声“;
foreach($cursor作为$value){
打印(价值);
}
回声“;
在PHP中,您可以使用

$search=newmongoregex(“/910/”);
$cursor=$collection->find(数组)(
“$或”=>数组(
数组(“tel.mobile”=>$search),
数组(“tel.phone”=>$search)
)
));
回声“;
foreach($cursor作为$value){
打印(价值);
}
回声“;
在PHP中,您可以使用

$search=newmongoregex(“/910/”);
$cursor=$collection->find(数组)(
“$或”=>数组(
数组(“tel.mobile”=>$search),
数组(“tel.phone”=>$search)
)
));
回声“;
foreach($cursor作为$value){
打印(价值);
}
回声“;

您的tel属性是一个子文档。是否要检查手机号码或家庭号码?您的tel属性是一个子文档。是否要检查手机号码或家庭号码?您的tel属性是一个子文档。是否要检查手机号码或家庭号码?您的tel属性是一个子文档。你想查看手机号码还是家庭号码?OP询问如何用PHP编写查询。@ChristianP哦,那好吧,但最初的投诉者和亲密的选民似乎根本看不到答案。我真的认为现在每个人都应该能够阅读JSON语法,并且应该知道如何转换。显然,如果只是发布一个PHP代码版本,而这个版本正是前面给出的答案,那么有人会这么做。你不觉得应该这样吗。很遗憾有人认为抄袭答案是可以的。你可以接受我在那之前给出的答案来帮助我。很高兴它有帮助。OP问如何用PHP编写查询。@ChristianP哦,那好吧,但最初的抱怨者和亲密的选民似乎根本看不到答案。我真的认为现在每个人都应该能够阅读JSON语法了
$search = new MongoRegex("/910/");
$cursor = $collection->find(array(
    '$or' => array(
        array("tel.mobile"  => $search),
        array("tel.phone"   => $search)
    )
));

echo "<pre>";
foreach ($cursor as $value) {
    print_r($value);
}
echo "</pre>";