3

As per the title, what would be the PHP Mongo equivalent of something like this in SQL:

SELECT DISTINCT(field) FROM table WHERE someCondition = 1

I've read looked at this table but I don't see how to map db.users.distinct('last_name') into PHP.

Giacomo1968
  • 25,759
  • 11
  • 71
  • 103
bcmcfc
  • 25,966
  • 29
  • 109
  • 181

2 Answers2

4

If you need to add a where clause, use the following syntax:

$ages = $db->command(array(
    "distinct" => "people", 
    "key" => "age",
    "query" => array("someField" => "someValue")));
monofonik
  • 2,735
  • 3
  • 20
  • 17
4

Just issue a command and set the distinct key.

Take a look at the following example from the docs:

Finding all of the distinct values for a key.

<?php

$people = $db->people;

$people->insert(array("name" => "Joe", "age" => 4));
$people->insert(array("name" => "Sally", "age" => 22));
$people->insert(array("name" => "Dave", "age" => 22));
$people->insert(array("name" => "Molly", "age" => 87));

$ages = $db->command(array("distinct" => "people", "key" => "age"));

foreach ($ages['values'] as $age) {
    echo "$age\n";
}

?>

The above example will output something similar to:

4
22
87
alexn
  • 57,867
  • 14
  • 111
  • 145