永发信息网

如何用java存mongodb的isodate

答案:2  悬赏:80  手机版
解决时间 2021-02-05 22:13
如何用java存mongodb的isodate
最佳答案
mongodb的java数据类型有:
Object Ids 自动ID
Regular Expressions 正则表达式搜索记录
Dates/Times 时间
Database References 数据基础结构
Binary Data 二进制流
Timestamp Data 时间标记戳
Code Data 代码数据
Embedded Documents 嵌入式文档
Arrays 数组类型
以下测试基础的mongodb数据类型。

复制代码代码如下:

package com.javaer.mongo;

import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Date;
import java.util.regex.Pattern;

import org.bson.types.ObjectId;

import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.DBRef;
import com.mongodb.Mongo;

public class JavaTypes {


public static void main(String[] args) throws UnknownHostException {
//基础ID,自动增加 结构类似503991d90364b431cdc798e2
ObjectId id = new ObjectId();
System.out.println(id);

id = new ObjectId();
System.out.println(id);
//5039924c0364f4a124555e42
// 5039924c0364f4a124555e43 连续使用,自动增加,否则随机生成

Mongo m = new Mongo();
DB db = m.getDB("yuexiaosheng");
DBCollection coll = db.getCollection("mycollection");

//使用标准库的正则表达式,可以搜索数据里记录。类似mysql中条件 where title like '%name%'
Pattern john = Pattern.compile(".*?jack*.?",Pattern.CASE_INSENSITIVE);
BasicDBObject query = new BasicDBObject("title", john);

DBCursor cursor = coll.find(query);
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}

//mongodb中的时间类型
Date now = new Date();
BasicDBObject time = new BasicDBObject("ts", now);
coll.save(time);
//插入的记录 { "_id" : ObjectId("503993b20364129f6625d349"), "ts" : ISODate("2012-08-26T03:10:42.146Z") }

//mongodb中的数组结构。
ArrayList x = new ArrayList();
x.add(1);
x.add(2);
x.add(new BasicDBObject("foo", "bar"));
x.add(4);

BasicDBObject doc = new BasicDBObject("x", x);
coll.save(doc);
//插入的记录 { "_id" : ObjectId("503994500364bf9957b271a6"), "x" : [ 1, 2, { "foo" : "bar" }, 4 ] }

//存储mongodb的数据结构数据到数据库里
DBRef addressRef = new DBRef(db, "foo.bar", id);
DBObject address = addressRef.fetch();

DBObject person = BasicDBObjectBuilder.start()
.add("name", "Fred")
.add("address", addressRef)
.get();
coll.save(person);
//插入的数据记录
//{ "_id" : ObjectId("503995390364fcf1b54905b2"), "name" : "Fred", "address" : { "$ref" : "foo.bar", "$id" : ObjectId("503995390364fcf1b54905af") } }

DBObject fred = coll.findOne();

DBRef addressObj = (DBRef)fred.get("address");
System.out.println(addressObj);
// { "$ref" : "foo.bar", "$id" : "5039965c03648efcd6281311

}

}
全部回答
你是在概念上没有理解清楚,刚开始属于date类型的数据,之后转存到json的时候变成了string类型的数据,当你想调用的时候他返回的你以为是date数据的其实是string数据,所以你应该转一下类型,这样就对了。 即 new date(date)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
庄明庄温泉度假村停车场怎么去啊,我要去那办
尚上捞时尚火锅在哪里啊,我有事要去这个地方
大手大脚的意思是什么啊?知道的请说下!
50减去4.68用竖式怎样计算
瑞香楼停车场怎么去啊,我要去那办事
【手机电池休眠如何激活】走出锂电池误区首次
小康内衣在什么地方啊,我要过去处理事情
南昆山丹枫寨度假村停车场地址在什么地方,想
梦见小孩口里吐出粪是一梦见孩子想吐吐不出来
永兴县少年儿童业务体育学校地址有知道的么?
大面积深度烧伤患者合并ARDS,应该A.禁止实施
竹光的意思是什么啊?知道的请说下!
观音潭停车场地址有知道的么?有点事想过去
铜陵市依法治市领导小组办公室地址有知道的么
打黑彩输了钱报案行吗
推荐资讯
鱼刺卡在喉咙里,有的时候感觉有,有的时候感
在括号里填上一个成语,使前后组成三个成语
下列各项中,具有向相关国家提供贷款以稳定汇
欧风丽景南门地址有知道的么?有点事想过去
钢结构中,SGZ,CG,GXG各是什么的简称?
越调·天净沙表达了什么思想?
胛子的意思是什么啊?知道的请说下!
若(xmyn)3=x9y15,则m、n的值分别为A.9,5B
徐州市铜山区黄集镇郓城村村民委员会在什么地
守望先锋自定义比赛中,队伍1和队伍2怎么更换
罗威纳脱毛怎么办?什么原因?
翼教的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?