我希望从特定日期开始从MongoDB中提取。 由于我在Talend中使用了一个发送查询的组件,因此我不能使用多行代码。
你能直接在find-method中做日期限制吗?
db.example.find({ ts: { $gt: lowdate} });
凡低级别代替我希望你们中任何人都可以理解的东西。
非常感谢!
PS。如果重要的话,mongodb中的日期格式是“Dec 16,2011 7:37:06 PM”。
---更新--- 来自我的MongoDB:
,“ty”:“auth”,“ts”:“Dec 16,2011 3:28:01 PM”,
表明时间戳(ts)的格式是一个字符串。正确的吗?
答案 0 :(得分:0)
如果日期以该格式存储为字符串,则无法进行查询。为了解决这个问题,我建议你用自己喜欢的语言编写一个脚本来扫描所有文档并将这个日期作为字符串转换为时间戳。您可以覆盖“ts”字段,也可以创建一个新字段,例如。一种叫做“ts_int”的东西。
例如,在PHP中你会这样做:
<?php
$m = new Mongo();
$c = $m->mydbname->example;
foreach ( $c->find() as $item )
{
$item['ts_int'] = strtotime( $item['ts'] );
$c->update( $item );
}
?>