标签: isodate

camel-mongodb将java.util.Date保存为ISODate而不是NumberLong

我正在使用Apache Camel 2.13.1和MongoDB 2.2.2.我有以下路线:

<route id="camel-route" autoStartup="true">
    <from uri="file:/dir?move=${date:now:yyyyMMdd}\processed\${file:name}&amp;moveFailed=${date:now:yyyyMMdd}\failed\${file:name}" />

    <unmarshal>
        <jaxb prettyPrint="false" contextPath="com.example.model" />
    </unmarshal>

    <to uri="mongodb:connectionBean?database=db&amp;collection=coll&amp;operation=save" />
</route>
Run Code Online (Sandbox Code Playgroud)

文件使用者端点获取XML文件并将其解组为POJO,该POJO包含数据类型为int,String和java.util.Date的多个字段.它保存/插入正常但日期字段保存为NumberLong类型,而不是类型ISODate.

但是如果我使用MongoDB Java驱动程序保存它(即创建DBObject,使用字段"new Date()"映射一个键),它将在MongoDB中保存为ISODate.我可以通过使用camel XML DSL来实现这一点吗?

编辑:深入研究代码和文档,camel-mongodb使用Jackson,首先将其转换为Map,然后转换为BasicDBObject.有没有办法在XML DSL中我可以配置杰克逊的行为?最后一种方法是编写自定义类型转换器.

java date apache-camel mongodb isodate

10
推荐指数
0
解决办法
784
查看次数

Mongoexport -q ISODate查询

我试图运行这个:

mongoexport.exe -h *MYHOST* -p *MYPORT* -q "{'time':{'$gte': ISODate('2014-12-21 12:57:00.506Z'),'$lt': ISODate('2014-12-21 12:59:00.506Z')}}"
Run Code Online (Sandbox Code Playgroud)

或者这个(gte< without - '):

mongoexport.exe -h *MYHOST* -p *MYPORT* -q {'time':{$gte: ISODate('2014-12-21 12:57:00.506Z'),$lt: ISODate('2014-12-21 12:59:00.506Z')}}
Run Code Online (Sandbox Code Playgroud)

该查询在Robomongo上运行正常,但是使用mongoexport它会抛出:"太多的位置参数"

我知道我可以运行以下代码,但我不想每次需要执行查询时都使用日期转换器.

mongoexport.exe -h *MYHOST* -p *MYPORT* -q "{'time':{$gte: new Date(14191
66620506),$lt: new Date(1419166740506)}}"
Run Code Online (Sandbox Code Playgroud)

mongodb isodate

8
推荐指数
2
解决办法
9713
查看次数

如何格式化Datatable中显示的日期

我有一个函数,使用数据表显示我的数组中的对象.将日期和时间格式从ISODate更改为人类可读格式我有点问题.

MYDATA的

var datas = {“rows” : [{_id: "2017-01-03T00:00:00.000Z", Humidity: 24, Temperature: 18},

{_id: "2017-01-04T00:00:00.000Z", Humidity: 23.071428571428573, Temperature: 18.928571428571427} ]}
Run Code Online (Sandbox Code Playgroud)

JS脚本

var table = $('#myTable').DataTable( { 
    data: datas.rows,
            "columns": [
                { data: "_id" },
                { data: "Temperature" },
                { data: "Humidity" }

            ]
    });
Run Code Online (Sandbox Code Playgroud)

感谢您的预期帮助.

javascript jquery datetime datatables isodate

7
推荐指数
1
解决办法
3万
查看次数

新的Date()在错误的时区

在这篇文章的时候我的当前时间2017-01-10T19:23:00.000Z ,但new Date()给我的2017-01-11T00:23:19.521Z未来我目前的时区的5小时。这会影响我的数据存储在MongoDB中的方式。我知道我可以将时间设置为5小时前

var datetime    = new Date();
 datetime.setHours(datetime.getHours()-5); 
Run Code Online (Sandbox Code Playgroud)

但是我更喜欢一种更好的方法。我尝试使用此。我仍然有相同的时间。在代码的其他部分,我Tue Jan 10 2017 19:54:30 GMT-0500 (EST)与初始时间有所不同。如果有人指出这里出了问题,我会很高兴。

javascript timezone datetime node.js isodate

7
推荐指数
1
解决办法
1万
查看次数

在Javascript中修改ISO日期

我使用以下命令在Javascript程序中创建了几个ISO日期:

var isodate = new Date().toISOString()

以格式返回日期"2014-05-15T16:55:56.730Z".我需要从这些日期中减去5个小时.然后将上述日期格式化为"2014-05-15T11:55:56.730Z"

我知道这很hacky但非常感谢快速修复.

javascript date isodate

6
推荐指数
1
解决办法
8279
查看次数

日期字段从AWS Glue表转换为RedShift Spectrum外部表

我正在尝试将JSON数据集从S3转换为Glue表架构,转换为Redshift频谱以进行数据分析。创建外部表时,如何转换DATE字段?

需要突出显示源数据来自ISODate格式的MongoDB。这是胶水表格格式。

  struct $date:string
Run Code Online (Sandbox Code Playgroud)

在“外部”表中尝试了以下格式

startDate:struct<$date:varchar(40)>
startDate:struct<date:varchar(40)>
startDate:struct<date:timestamp>
Run Code Online (Sandbox Code Playgroud)

Redshift Spectrum或Glue中是否有解决ISODate格式的工作?还是建议返回源以转换ISOdate格式?

json isodate amazon-redshift-spectrum aws-glue

6
推荐指数
1
解决办法
136
查看次数

MongoDB ISODate 对象造成的纳秒损失

我丢失了 ISODate 对象的 MongoDb 接口的纳秒数。当我在 perl 中读取它们时,所有纳秒都设置为零。

首先是我的环境:

MongoDB version: 1.8.2 
perl v5.12.4 
MongoDB perl module version: 0.701.4 
Run Code Online (Sandbox Code Playgroud)

我有一个 Mongo DB,其 rtcTime 编码为 ISODate,如下所示:

"rtcTime" : ISODate("2013-05-13T18:54:55.918Z")
Run Code Online (Sandbox Code Playgroud)

提取 rtcTime 的代码如下所示:

my @results = $db->get_collection( 'timings' )->find( )->all(); 
foreach my $record ( @results ) 
{ 
    print $record->{rtcTime}->nanoseconds()."\n"; 
}
Run Code Online (Sandbox Code Playgroud)

输出全为 0。

要完全重现该问题,请在 MongoDB 数据库中创建一个具有任意(非零)hires_epoch 值的 ISODate 对象。然后尝试使用 MongoDB / DateTime / DateTime::Format::ISO8061 模块来提取任何类型的员工时间数据。

问:为什么我无法从 MongoDB ISODate 数据中获取毫秒、微秒或纳秒?

perl datetime mongodb bson isodate

5
推荐指数
1
解决办法
5991
查看次数

Mongo:如何使用long timeStamp将所有条目转换为ISODate?

我有一个当前的Mongo数据库,其中包含累积的条目/字段

{
 name: "Fred Flintstone",
 age : 34,
 timeStamp : NumberLong(14283454353543)
}

{
 name: "Wilma Flintstone",
 age : 33,
 timeStamp : NumberLong(14283454359453)
}
Run Code Online (Sandbox Code Playgroud)

等等...

问题:我想将数据库中的所有条目转换为相应的ISODate - 如何做到这一点?

期望的结果:

{
 name: "Fred Flintstone",
 age : 34,
 timeStamp : ISODate("2015-07-20T14:50:32.389Z")
}

{
 name: "Wilma Flintstone",
 age : 33,
 timeStamp : ISODate("2015-07-20T14:50:32.389Z")
}
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情

 >db.myCollection.find().forEach(function (document) {
    document["timestamp"] = new Date(document["timestamp"])

    //Not sure how to update this document from here
    db.myCollection.update(document) //?
})
Run Code Online (Sandbox Code Playgroud)

date type-conversion mongodb isodate

5
推荐指数
1
解决办法
2105
查看次数

如何在 Hive 中将 ISO 日期转换为 UTC 日期

我有如下 JSON 数据:我需要将该日期转换mongo_date为 utc 时间戳,以根据时间线示例每年、每月、每周使用 map reduce 分析 hive 中的数据

{
    "_id" : ObjectId("51ac77050e9edcdad271ce2d"),
    "company" : null,
    "date" : "19760224",
    "mongo_date" : ISODate("1976-02-24T00:00:00Z")
Run Code Online (Sandbox Code Playgroud)

hive date type-conversion unix-timestamp isodate

4
推荐指数
1
解决办法
5138
查看次数

JavaScript - 如何以ISODate格式保存MongoDB文档中的日期?

我一直在尝试将日期从javascript端保存为ISODate格式的MongoDB.但它只是以字符串格式保存MongoDB文档中的日期字段.

这是我发送到MongoDB中的对象,以保存为给定集合中的文档.

var currentDate = new Date();

postData = {
   deviceID: deviceID,
   companyID: companyID,
   userID: userID,
   date: currentDate
};
Run Code Online (Sandbox Code Playgroud)

一切正常,但日期字段只是以字符串格式保存.找不到任何可以为这个问题提供明确答案的问题,如果有问题,请指导我到正确的地方!

javascript mongodb isodate

4
推荐指数
1
解决办法
3454
查看次数