网上到的代码很多都是旧的了, 啃下了有些官方文档, 新的东西还是官方文档最实际, 麻烦的是上班的环境没得上网, 基本都是用手机啃得
http://mongodb.github.io/mongo-java-driver/3.9/whats-new/
http://mongodb.github.io/mongo-java-driver/3.9/driver/
里面的日期最需要重点关注, 如果是使用Document 插入的话, 日期没有问题,
但是如果是JSON 字符串的话, 使用ISODate(), MongoDB 的date类型以UTC(Coordinated Universal Time)存储,就等于GMT(格林尼治标准时)时间, 0 时区的, 而我们本地的时区(北京时间)是+8 的, 导致显示的数据和我们插入的要差异, 要特殊处理一下, 插入的话, 需要用到
simpleDateFormat.setCalendar(new GregorianCalendar(new SimpleTimeZone(0,"GMT")));
import com.mongodb.client.MongoClients;
import com.mongodb.ConnectionString;
import com.mongodb.client.MongoClient;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import java.text.SimpleDateFormat;
import java.util.*;
public class MongoDBJDBC{
public static void main( String args[] ){
try{
// 连接到 mongodb 服务
MongoClient mongoClient = MongoClients.create("mongodb://godber:godber@localhost:27000/godb");
// 连接到数据库
MongoDatabase db = mongoClient.getDatabase("godb");
MongoCollection collection = db.getCollection("ta_test");
Document doc = new Document();
doc.append("name", "test")
.append("val", 12)
.append("rate","192")
.append("dt",
new SimpleDateFormat("M/dd/yyy h:mm:ss").parse("1/24/2019 12:19:55 AM"));//1/24/2019 12:19:55 AM
//.append("dt",Calendar.getInstance().getTime());
//.append("versions", Arrays.asList("1","2"))
//.append("info", new Document("x",1));
//collection.insertOne(doc);
//List documentList = new ArrayList();
//collection.insertMany(documentList);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
simpleDateFormat.setCalendar(new GregorianCalendar(new SimpleTimeZone(0,"GMT")));
String json = "{" +
" 'name' : 'testjs' " +
" ,'val' : " + 15 + " " +
" ,'rate' : '192' " +
" ,'dt' : ISODate('" + simpleDateFormat.format(
Calendar.getInstance().getTime()
)+ "')" +
// " ,'dt' : ISODate('2011-11-11T00:00:00Z')" +
"}";
Document document2 = Document.parse(json);
collection.insertOne(document2);
System.out.println("ta_test count" + collection.countDocuments());
Document myDoc = collection.find().first();
System.out.println(myDoc.toJson());
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}