Doctrine ODM(MongoDB)-删除今天创建的数据
我在ODM工作。我对教义一无所知。。实际上,我正在尝试删除今天使用querybuilder插入的集合中的所有数据。但我无法做到这一点。请帮我做这个。下面是我尝试使用的querybuilderDoctrine 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
.....->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有趣的不知道为什么->范围会在这里失败,因为它应该只是同一事物的简写。