Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Doctrine ODM(MongoDB)-删除今天创建的数据_Mongodb_Doctrine Orm_Doctrine_Odm - Fatal编程技术网

Doctrine ODM(MongoDB)-删除今天创建的数据

Doctrine ODM(MongoDB)-删除今天创建的数据,mongodb,doctrine-orm,doctrine,odm,Mongodb,Doctrine Orm,Doctrine,Odm,我在ODM工作。我对教义一无所知。。实际上,我正在尝试删除今天使用querybuilder插入的集合中的所有数据。但我无法做到这一点。请帮我做这个。下面是我尝试使用的querybuilder .....->createQueryBuilder('Document') ->remove() ->field('active')->equals(1) ->where('createdOn')->equ

我在ODM工作。我对教义一无所知。。实际上,我正在尝试删除今天使用querybuilder插入的集合中的所有数据。但我无法做到这一点。请帮我做这个。下面是我尝试使用的querybuilder

.....->createQueryBuilder('Document')
           ->remove()
           ->field('active')->equals(1)
           ->where('createdOn')->equals(new MongoDate(date()))
           ->getQuery();
那么下面呢:

新蒙哥达特 确实有点过于精细,因为不太可能有任何具有确切时间戳值的内容,而且肯定不是一整天

你想要找到的是今天和第二天之间的范围,因此首先计算出日期:

$date=新的日期时间;现在正是时候 $ts=$date->getTimestamp; $today=$ts-$ts%60*60*24;整天 $明天=$今天+60*60*24;再加上一天 $start=newmongodate$today; $end=新MongoDate$明天; 然后调用范围上的值:

…->createQueryBuilder“文档” ->除去 ->字段“活动”->等于1 ->其中'createdOn'->范围$start,$end ->获取查询 ->执行;
通常在MongoDB查询术语中用$gt和$lt运算符表示,但原则DSL有一个组合运算符来表示范围。

@VinothBabu是在MongoDB中的实际BSON日期对象上创建的吗?如果是这样的话,它将在shell中显示为ISODate,或者在PHP代码中正确地显示为MongoDate。@VinothBabu也许我在代码的剪切粘贴中有点文字化。你打过电话吗,执行?除此之外,这里肯定有一些数据问题,错误的收集,查询中的其他条件不匹配。检查这些并检查您的数据。我使用lte和gte as->field'createdOn'->gte$from和->field'createdOn'->lte来实现这一点$to@VinothBabu有趣的不知道为什么->范围会在这里失败,因为它应该只是同一事物的简写。