我正在阅读MongoDB::command
docs,但他们认为我很穷。如何使用::command
查询集合?
假设我有一个things
的集合,每个东西都有一个path
(其他things
与/
加入的字母数字字符串)。如何查询以things
开头的所有/2e3r4t/
?
也许
::command(["path" => "/^/2e3r4t//"])
答案 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之间实现: