来自PHP的MongoDB Collection runCommand

时间:2013-03-09 17:36:35

标签: php mongodb

我有example

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)
                    );

2 个答案:

答案 0 :(得分:4)

这是PHP中Mongodb Text Search使用的更广泛的例子

<?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);

答案 1 :(得分:0)

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