如何通过搜索内部数组来检查记录是否存在

时间:2016-06-12 14:15:59

标签: php mongodb mongodb-query

我在DB

中有这条记录
{
   "_id": ObjectId("5759ccbcc2b503980c000143"),
   "phone": "516-425-5878",
   "orders": [
     "1338475681",
     "1891805481",
     "1891805481" 
  ] 
}

这是我的代码。

$collection = $mongo_db_obj->selectCollection('scrapers', 'leads');
$data = array(
    'phone' => '516-425-5878',
    "orders" => array('$in'=>1891805481)
);

$doc = $collection->findOne($data);

dump($doc);

我想检查特定phoneorders数组中的订单ID是否存在。但是我的代码给出了错误。

我也试过这个。

$data = array(
'phone' => '516-425-5878',
"orders" => array(1891805481)
 );

但它返回空结果。

我该如何检查?

1 个答案:

答案 0 :(得分:2)

$ in 运算符选择字段值与数组中的值匹配的文档。

请尝试执行以下代码段作为上述问题的解决方案

$conn = new MongoClient('localhost:27017');
$db = $conn->selectDB("mydb");
$collection=$db->mycoll;
$data = array(
    'phone' => '516-425-5878',
    "orders" => array('$in'=>array('1891805481'))
);
$data=$collection->findOne($data);