2017-04-02 62 views
0

由于驱动程序版本的不同,目前有许多关于mongodb和php的相互冲突的帖子。我使用的驱动程序1.2.7,PHP 5.6和XAMPP最新的Mongodb搜索集合

最新的MongoDB这是我当前的代码:

$filter = [ 'userID' => $myUserId, 'isSold' => true]; 

    $cmdOne = new MongoDB\Driver\Command([ 

     'distinct' => 'collectionNameHere', 
     'key' => 'productID', 
     'query' => $filter 

    ]); 

    $cursorOne = $connection->executeCommand('DatabaseNameHere', $cmdOne); 

    $products = current($cursorOne->toArray())->values; 

有没有办法找到非不同的结果?

这不起作用,由于不同的MongoDB驱动程序: MongoDB search in collection

回答

1

您对使用executeQuery与查询过滤器和投影

$filter = [ 'userID' => $myUserId, 'isSold' => true]; 

$projection = ['projection' => ['productID' => 1]]; 

$query = new MongoDB\Driver\Query($filter, $projection); 

$cursor = $connection->executeQuery('DatabaseNameHere.CollectionNameHere', $query); 
+0

能否介绍一下第二行吗? - 主要是1代表 – Gabrielus

+0

1/true将productID包含在输出中。 0/false来排除。更多的投影规则在这里https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/ – Veeram