Mongo数据库查询问题

时间:2015-07-29 07:15:22

标签: php mongodb

我是Mongo DB的初学者。我写了查询,见下文供您进一步参考。

我的查询

$result =  $this->likes->find(array("post_id" => $post_id));

因为我的表名是"喜欢"如果我的字段名为post_id,则会传递$post_id(我的动态值示例$post_id= "55b86fb60fdd9419128b4567")。

但是我无法从下面的查询得到我预期的结果,如果我通过$post_id是静态意味着我得到了我想要的结果。

先谢谢你的帮助

4 个答案:

答案 0 :(得分:1)

  

您正在尝试使用字符串来匹配MongoId。请记住,这是两种不同的数据类型。这是documentation

中的内容

您应该查询如下:

$result =  $this->likes->find(array("post_id" => new MongoId($post_id)));

doc中所述,您可以使用 -

打印查询结果
foreach ($result as $doc) {
  var_dump($doc);
}

答案 1 :(得分:0)

尝试以下方法:

$result =  $this->likes->find(array("post_id" => new MongoId($post_id)));

答案 2 :(得分:0)

  

试试这个:

function connection($tableName){        
    // Connect to Mongo
    //$this->connection = new MongoClient('localhost:27017'); //for linux
    $this->connection = new Mongo('localhost:27017'); // for window

    // Select a database
    $this->db = $this->connection->databaseName;

    // Select a collection
    $this->posts = $this->db->$tableName;
}

$this->connection('likes'); // likes is collection name
$id= "55b86fb60fdd9419128b4567";
$members = $this->posts->find(array("post_id" => $id));

答案 3 :(得分:0)

试试这个:

$ result = $ this-> likes-> find(array(" post_id" => new \ MongoId($ post_id)));