首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP/MongoDB &复杂查询

PHP/MongoDB &复杂查询
EN

Stack Overflow用户
提问于 2014-10-31 07:44:51
回答 1查看 40关注 0票数 0

我在Mongodb很新。只需阅读文档和播放。我想在2014年8月25日至2014年8月28日之间找到带有"MIA“和时间戳值的文件。我是这样写的

代码语言:javascript
复制
$var = "MIA";
date_default_timezone_set('UTC');
$from = strtotime('2014-08-25');
$to = strtotime('2014-08-28');;

$var = new MongoRegex("/$var/");
$where1 = array( '$or' => array( array(array('caller' => $var)), array('callee' => $var)));

$where2 = array( '$and' => array( array('timestamp' => array('$gte' => $from )), array('timestamp' => array('$lte'=> $to)) ) );

$where = array( '$and' => $where1, $where2 );

//var_dump($where);

$cursor = $collection->find($where);
var_dump($cursor);

我得到的是空洞的结果。你能给我建议一下吗?

谢谢

编辑:集合结构

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-31 08:27:30

尝尝这个。

代码语言:javascript
复制
$where1 = array(
    '$or' => array(
        // array(array('caller' => $var)) => often nest one
        array('caller' => $var),
        array('callee' => $var)
    )
);

$where2 = array(
    '$and' => array(
        array('timestamp' => array('$gte' => $from)),
        array('timestamp' => array('$lte'=> $to))
    )
);

// $where = array( '$and' => $where1, $where2 ); => `$where2` is not in $and query
$where = array( '$and' => array($where1, $where2));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26669676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档