在php mongodb中使用数组投影

时间:2018-08-06 11:14:44

标签: php mongodb php-7

我有一个像这样的收藏集:

"Name":"test",
"Description":"some desc here",
"Teams":[0:"idhash1",1:"idhash2"],
"clientId":"clienthash"

我从中返回所有类似这样的项目:

$filter = array('clientId' => $clientID);
$options = [];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $this->conn->executeQuery('dbname.collectionname', $query);

现在我要为团队价值添加另一个过滤器:

$filter = array('clientId' => $clientID,'Teams'=>'idhash1');
$options = [];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $this->conn->executeQuery('dbname.collectionname', $query);

显然不起作用。我将如何工作?我使用的是PHP7.0,MongoDB 4.0和扩展版本1.4.2

2 个答案:

答案 0 :(得分:0)

这会有所帮助 用Php在MongoDB中插入$ http://php.net/manual/en/mongocollection.insert.php

答案 1 :(得分:0)

我决定要做的是不仅将teamid添加到数组中,而且还添加为单独的键:

"Name":"test",
"Description":"some desc here",
"Teams":[0:"idhash1",1:"idhash2"],
"clientId":"clienthash",
"Team_idhash1":1,
"Team_idhash2":1

使查询变得非常容易,通过对团队进行过滤,这样做的效果要好得多。