MongoDB支持的java数据类型和测试例子

前端技术 2023/09/05 Java

mongodb的java数据类型有:

Object Ids 自动ID
Regular Expressions 正则表达式搜索记录
Dates/Times 时间
Database References 数据基础结构
Binary Data 二进制流
Timestamp Data 时间标记戳
Code Data 代码数据
Embedded Documents 嵌入式文档
Arrays 数组类型

详细参考原来英文 http://docs.mongodb.org/ecosystem/drivers/java-types/

以下测试基础的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 {

 /**
  * @param args
  * @throws UnknownHostException
  */
 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

 }

}

本文地址:https://www.stayed.cn/item/13151

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。