0

我正在寻找从特定日期从 MongoDB 中提取的内容。由于我在 Talend 中使用了一个发送查询的组件,因此我有点受限,因为我不能使用多行代码。

您可以直接在查找方法中进行日期限制吗?

db.example.find({ ts: { $gt: lowdate} });

我希望你们中的任何人都可以弄清楚低日期的地方。

非常感谢!

PS。如果重要的话,mongodb 中的日期格式是“Dec 16, 2011 7:37:06 PM”。

--- 更新 --- 从我的 MongoDB:

,“ty”:“auth”,“ts”:“2011 年 12 月 16 日下午 3:28:01”,

这表明时间戳(ts)的格式是一个字符串。正确的?

4

1 回答 1

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 );
}
?>
于 2012-04-17T09:30:32.427 回答