我是Mongo DB的初学者。我写了查询,见下文供您进一步参考。
我的查询
$result = $this->likes->find(array("post_id" => $post_id));
因为我的表名是"喜欢"如果我的字段名为post_id
,则会传递$post_id
(我的动态值示例$post_id= "55b86fb60fdd9419128b4567"
)。
但是我无法从下面的查询得到我预期的结果,如果我通过$post_id
是静态意味着我得到了我想要的结果。
先谢谢你的帮助
答案 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)));