【问题标题】:How to get a single value from MongoDB using PHP?如何使用 PHP 从 MongoDB 获取单个值?
【发布时间】:2020-08-31 00:59:30
【问题描述】:

所以我有以下代码从数据库中的集合中获取文档:

$manager = new MongoDB\Driver\Manager('mongodb+srv://<username>:<password>@cluster0.hyqa4.mongodb.net/academic?retryWrites=true&w=majority');
$filter = ['username' => $uname];
$options = ['projection' => ['_id' => 0]];
$query = new MongoDB\Driver\Query($filter, $options); 
$cursor = $manager->executeQuery("academic.users", $query); 

foreach($cursor as $document) {
  print_r($document);
}

我可以通过搜索用户名成功检索文档,所以如果 $uname 是“Jon”,我会得到以下输出:

stdClass Object ( [username] => Jon [email] => Jon@mail.com [passwd] => pass123 ) 

但是,我想做的只是从文档中返回一个值,所以如果我想获取电子邮件的值,它将返回:

Jon@mail.com

...所以我可以将该值存储为变量。 我该怎么做?

【问题讨论】:

  • 并且不要以纯文本形式存储密码。应用一些加密

标签: php mongodb


【解决方案1】:

可以通过-&gt; 操作符访问Std 类对象。因此,您可以使用 $document-&gt;email 访问个人电子邮件。这是你要找的吗

$manager = new MongoDB\Driver\Manager('mongodb+srv://<username>:<password>@cluster0.hyqa4.mongodb.net/academic?retryWrites=true&w=majority');
$filter = ['username' => $uname];
$options = ['projection' => ['_id' => 0]];
$query = new MongoDB\Driver\Query($filter, $options); 
$cursor = $manager->executeQuery("academic.users", $query); 

foreach($cursor as $document) {
  print_r($document->email);
}

【讨论】:

    猜你喜欢
    • 2018-08-06
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 2020-07-06
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多