MongoDB Collection runCommand from PHP


MongoDB Collection runCommand from PHP

我有这个例子。

db.Wall.runCommand( "text", { search : "See" } );

如何从PHP调用这个?我在MongoCollection类中找不到方法,

注意我运行的是mongo 2.4 dev版本。

我尝试使用命令方法,但没有运气集合称为Wall

$ret = $db->command( array(
                        "runCommand" => "Wall",
                        "text" => array('search' => $text))
                    );

输出为

Array ( [ok] => 0 [errmsg] => no such cmd: runCommand [bad cmd] => Array ( [runCommand] => Wall [text] => Array ( [search] => See ) ) )

我找到了答案,但我需要等待7小时,因为我的声誉很低:)

$ret = $db->command( array(
                        "text" => "Wall",
                        "search" => $text)
                    );

这是一个在PHP中使用Mongo文本搜索的更广泛的例子

<?php
$m = new MongoClient(); // connect
$db = $collection = $m->foo; // get the database named "foo"
$collection = $db->bar; // get the collection "bar" from database named "foo"
$collection->ensureIndex(
    array(
        'title' => 'text',
        'desc' => 'text',
    ),
    array(
        'name' => 'ExampleTextIndex',
        'weights' => array(
            'title' => 100,
            'desc' => 30,
        ),
        'timeout' => 60000000
    )
);
$result = $db->command(
    array(
        'text' => 'bar', //this is the name of the collection where we are searching
        'search' => 'hotel', //the string to search
        'limit' => 5, //the number of results, by default is 1000
        'project' => Array( //the fields to retrieve from db
            'title' => 1
        )
    )
); 
print_r($result);
$ret = $db->command( array(
                        "text" => "Wall",
                        "search" => $text)
                    );