如何使用 PHP 正确检查 MongoDB Atlas 数据库中的现有数据。我总是知道名字已经存在

Posted

技术标签:

【中文标题】如何使用 PHP 正确检查 MongoDB Atlas 数据库中的现有数据。我总是知道名字已经存在【英文标题】:How do you properly check for an existing data in MongoDB Atlas database using PHP. I always get thet the name already exists 【发布时间】:2021-12-13 15:06:58 【问题描述】:
    $query = ['name' => $name];

    $options = [];
    $queryDriver = new MongoDB\Driver\Query($query, $options);

    $execute = $conn->executeQuery('db.collection', $queryDriver);

    //validation if a user exists
    if (!empty($execute)) 
      $err['name'] = 'this name already exists';
     else 
      echo 'this name doesnt exist';

我正在尝试创建一个注册表单,但我无法验证名称是否已存在。

【问题讨论】:

你好,请写一个摘要标题,并将其余的解释放在正文中。祝你好运??? 【参考方案1】:

您的问题与数据库查询结果无关。在您的代码中,您在第一行

    $query = ['name' => $name];

在脚本的最后,您正在检查

 if (!empty($query)) 

此时$query 不为空(它是['name' => $name])。 不是验证查询结果,而是验证查询条件。

【讨论】:

已尝试将执行的查询放在if (!empty($execute)) ,但由于该命令执行查询,它仍然不起作用 正如您在手册 (php.net/manual/en/mongodb-driver-manager.executequery.php) 方法中看到的,executeQuery 返回 MongoDB\Driver\Cursor,它也不为空。您可以这样做:$users = $conn->executeQuery('db.collection', $queryDriver)->toArray(); if (count($users) > 0) ... 检查名称为 $name 的用户是否存在 非常感谢您,现在它可以工作了。我不知道您可以将其转换为数组。一直在查看本手册,似乎我还没有知道如何正确使用手册。谢谢

以上是关于如何使用 PHP 正确检查 MongoDB Atlas 数据库中的现有数据。我总是知道名字已经存在的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MongoDB 中正确使用 $geoIntersects?

如何使用 PHP 和正则表达式检查输入值是不是正确? [复制]

正确关闭使用 ATL 在单独线程上创建的窗口

PHP:如何正确检查文件的 MIME 类型?

ATL 如何将 BSTR* str 转换为注册表项。 SetValue(LPCTSTR str 类型

php PayPal付款 - WordCamp ATL 2015