使用MongoDB :: command进行查询

时间:2015-05-10 10:38:33

标签: php mongodb

我正在阅读MongoDB::command docs,但他们认为我很穷。如何使用::command查询集合?

假设我有一个things的集合,每个东西都有一个path(其他things/加入的字母数字字符串)。如何查询以things开头的所有/2e3r4t/

也许

::command(["path" => "/^/2e3r4t//"])

1 个答案:

答案 0 :(得分:1)

MongoDB :: command用于将原始database commands发送到服务器。对于大多数常见命令,您将在语言库中找到包装器。

此处,根据您的说明,您需要Collection::find喜欢的东西(未经测试 - 小心拼写错误):

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'thing');

$regex = new MongoRegex("/^\/2e3r4t\//");
$collection->find(array('path' => $regex));

有趣的是,从MongoDB 3.0.2开始,find命令没有记录,显然尚未实现作为数据库命令:

> db.runCommand({find: "w"})
{ "ok" : 0, "errmsg" : "find command not yet implemented" }

因此,对于这个,您将不得不依赖于驱动程序的相应方法。

编辑:从快速look at the sources开始,find命令在3.1.0和3.1.1之间实现: