我有一个像这样的收藏集:
"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
答案 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
使查询变得非常容易,通过对团队进行过滤,这样做的效果要好得多。