从Java驱动程序,我想保存一个文档,看起来像下面的json在MongoDb
{ "ts" : Timestamp(1421006159, 4)}
我尝试过的选择。
选项1:Map doc=new HashMap(1);
doc.put("ts", new BSONTimeStamp());
它会产生以下非必需的格式
{"ts" : {
"_inc" : 0,
"_class" : "org.bson.types.BSONTimestamp"
}}
备选案文2:
doc.put("ts",new Timestamp(new Date().getTime()));
其结果是:
{"ts" : ISODate("2015-01-12T05:36:43.343Z")}
MongoDB建议存储一个日期,因为BSON时间戳供内部使用:
http://docs.mongodb.org/manual/reference/bson-types/#timestamps
不同之处在于Date具有更大的表示范围,因为它是一个64位整数,表示自Unix纪元以来的毫秒数。
在BSON时间戳中,只有32位具有此目的;其他32位是一秒钟内的递增顺序整数,以确保值的唯一性。我想这就是他们在oplog中使用时间戳的原因。
如果您不介意唯一性,我建议使用日期(也称为ISODate),因此选项2或选项3:
doc.put("ts", new Date());
我用下面的默认mongob-java-驱动程序(没有Spring数据)。
DBObject doc= new BasicDBObject();
doc.put("ts", new BSONTimeStamp(1421006159, 4));
查找的MongoDB结果是:
{ "_id" : ObjectId("54b396da7fe45ee2d6c5e03a"), "ts" : Timestamp(1421006159, 4) }
因此,将BSONTimeStamp序列化到类名和类属性及其值取决于sping-data-mongob序列化器。您应该使用默认的java-mongob-驱动程序,或者在MongoDB中使用JavaDate
和ISODate
格式。
或者,您可以扩展spring data mongodb序列化程序,为类BSONTimeStamp
编写自己的序列化程序和反序列化程序,以使用mongodb时间戳类型。
我想使用TypeORM将键值对存储到MongoDB。我的后端API是用NestJs制作的(不确定这是否重要)。键的类型为,值的类型为,因为我想将任何内容存储到此对象。 这是我的TypeForm数据库配置 我的映射实体不会自动生成密钥,因为我想自己设置它 当我想将一个新映射保存到数据库时,我运行这个逻辑(无论在哪里) 我得到这个错误 无法读取未定义的属性属性属性名称 执行数据库实体的功能时。似乎我无
主要内容:Oracle TIMESTAMP数据类型简介,Oracle TIMESTAMP文字,Oracle TIMESTAMP示例,格式化TIMESTAMP值,提取TIMESTAMP组件,默认的TIMESTAMP格式在本教程中将学习Oracle 数据类型以及如何在Oracle数据库中有效处理数据。 Oracle TIMESTAMP数据类型简介 数据类型用于存储日期和时间数据,包括年,月,日,时,分和秒。 另外,它存储小数秒,它不是由DATE数据类型存储的。 要定义列,请使用以下语法: 指定字段小
我需要创建一个带有单键的哈希表,它应该包含多个字符串,数组列表,字符串,数组列表类型的值.. 爱尔兰共和国..,字符串类型的Msg,整数数组列表类型的groupdestId,字符串类型的Id,整数数组列表类型的userdestId..
基本上,我希望MyClass持有一个Hashmap将字段名(字符串)映射到任何类型的值。为此,我编写了一个单独的MyField类来保存类型和值信息。 这是我目前所掌握的: 但是正如您所看到的,映射声明失败了,因为我没有为MyField提供类型参数... 所以我想应该是 或 我有什么办法可以做到这一点吗?
我已经将Luxon创建的datetime值保存到postgres数据库列中,类型为TIMESTAMP(3)。然后我想使用这个值,把它转换成其他时区,等等。然而,我似乎想不出如何“利用”它。 我使用以下方法创建了该对象: 然后,我将其插入到postgres数据库中,插入时间戳(3)类型的列中。 我使用查询从数据库中提取它。当我记录它时,它说它的值是: 我可以找到很多关于如何将日期插入sql的教程,但
我有一个Java类具有类型的成员变量: 我正在使用MongoTemplate更新数据库中的字段: 将字段在DB中保持为类型: 现在,该方法也可以调用为: 在本例中,我得到一个异常: org.springframework.core.convert.converterNotFoundException:找不到能够从类型[java.lang.String]转换为类型[java.time.instant