MongoDB支持的java數(shù)據(jù)類(lèi)型和測(cè)試?yán)?/h1>
更新時(shí)間:2014年05月29日 09:13:34 作者:
這篇文章主要介紹了MongoDB支持的java數(shù)據(jù)類(lèi)型和測(cè)試?yán)?MongoDB除了本身自有的數(shù)據(jù)類(lèi)型外,還為較流行的編程語(yǔ)言定制了該語(yǔ)言的數(shù)據(jù)類(lèi)型,需要的朋友可以參考下
mongodb的java數(shù)據(jù)類(lèi)型有:
Object Ids 自動(dòng)ID
Regular Expressions 正則表達(dá)式搜索記錄
Dates/Times 時(shí)間
Database References 數(shù)據(jù)基礎(chǔ)結(jié)構(gòu)
Binary Data 二進(jìn)制流
Timestamp Data 時(shí)間標(biāo)記戳
Code Data 代碼數(shù)據(jù)
Embedded Documents 嵌入式文檔
Arrays 數(shù)組類(lèi)型
詳細(xì)參考原來(lái)英文 http://docs.mongodb.org/ecosystem/drivers/java-types/
以下測(cè)試基礎(chǔ)的mongodb數(shù)據(jù)類(lèi)型。
復(fù)制代碼 代碼如下:
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 {
//基礎(chǔ)ID,自動(dòng)增加 結(jié)構(gòu)類(lèi)似503991d90364b431cdc798e2
ObjectId id = new ObjectId();
System.out.println(id);
id = new ObjectId();
System.out.println(id);
//5039924c0364f4a124555e42
// 5039924c0364f4a124555e43 連續(xù)使用,自動(dòng)增加,否則隨機(jī)生成
Mongo m = new Mongo();
DB db = m.getDB("yuexiaosheng");
DBCollection coll = db.getCollection("mycollection");
//使用標(biāo)準(zhǔn)庫(kù)的正則表達(dá)式,可以搜索數(shù)據(jù)里記錄。類(lèi)似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中的時(shí)間類(lèi)型
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中的數(shù)組結(jié)構(gòu)。
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 ] }
//存儲(chǔ)mongodb的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)到數(shù)據(jù)庫(kù)里
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);
//插入的數(shù)據(jù)記錄
//{ "_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
}
}
您可能感興趣的文章:- MongoDB 常用的數(shù)據(jù)類(lèi)型和基本操作
- Java將日期類(lèi)型Date時(shí)間戳轉(zhuǎn)換為MongoDB的時(shí)間類(lèi)型數(shù)據(jù)
- Mongodb 利用mongoshell進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)方法
- 基于MongoDB數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型和$type操作符詳解
- mongodb 數(shù)據(jù)類(lèi)型(null/字符串/數(shù)字/日期/內(nèi)嵌文檔/數(shù)組等)
- Mongodb 數(shù)據(jù)類(lèi)型及Mongoose常用CURD
- MongoDB常用數(shù)據(jù)類(lèi)型分享
相關(guān)文章
-
kibana中ES修改某個(gè)字段類(lèi)型問(wèn)題小結(jié)
這篇文章主要介紹了kibana中ES修改某個(gè)字段類(lèi)型問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下 2023-06-06
-
Spring解決循環(huán)依賴(lài)問(wèn)題及三級(jí)緩存的作用
這篇文章主要介紹了Spring解決循環(huán)依賴(lài)問(wèn)題及三級(jí)緩存的作用,所謂的三級(jí)緩存只是三個(gè)可以當(dāng)作是全局變量的Map,Spring的源碼中大量使用了這種先將數(shù)據(jù)放入容器中等使用結(jié)束再銷(xiāo)毀的代碼風(fēng)格 2022-07-07
-
java實(shí)現(xiàn)在普通類(lèi)中注入service或mapper
這篇文章主要介紹了java實(shí)現(xiàn)在普通類(lèi)中注入service或mapper的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教 2021-07-07
-
Java獲得一個(gè)數(shù)組的指定長(zhǎng)度排列組合算法示例
這篇文章主要介紹了Java獲得一個(gè)數(shù)組的指定長(zhǎng)度排列組合算法,結(jié)合實(shí)例形式分析了java排列組合相關(guān)數(shù)組遍歷、運(yùn)算操作技巧,需要的朋友可以參考下 2019-06-06
-
Java8?CompletableFuture?異步多線程的實(shí)現(xiàn)
本文主要介紹了Java8?CompletableFuture?異步多線程的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧 2023-04-04
-
Java實(shí)現(xiàn)可視化走迷宮小游戲的示例代碼
這篇文章主要介紹了Java如何實(shí)現(xiàn)可視化走迷宮小游戲。本程序適用于java程序員鞏固類(lèi)與對(duì)象、文件讀取、事件響應(yīng)、awt包中各種工具的相關(guān)概念以及對(duì)邏輯能力的鍛煉,需要的可以參考一下 2022-11-11
-
Java經(jīng)典快排思想以及快排的改進(jìn)講解
今天小編就為大家分享一篇關(guān)于Java經(jīng)典快排思想以及快排的改進(jìn)講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧 2019-01-01
最新評(píng)論
mongodb的java數(shù)據(jù)類(lèi)型有:
Object Ids 自動(dòng)ID
Regular Expressions 正則表達(dá)式搜索記錄
Dates/Times 時(shí)間
Database References 數(shù)據(jù)基礎(chǔ)結(jié)構(gòu)
Binary Data 二進(jìn)制流
Timestamp Data 時(shí)間標(biāo)記戳
Code Data 代碼數(shù)據(jù)
Embedded Documents 嵌入式文檔
Arrays 數(shù)組類(lèi)型
詳細(xì)參考原來(lái)英文 http://docs.mongodb.org/ecosystem/drivers/java-types/
以下測(cè)試基礎(chǔ)的mongodb數(shù)據(jù)類(lèi)型。
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 {
//基礎(chǔ)ID,自動(dòng)增加 結(jié)構(gòu)類(lèi)似503991d90364b431cdc798e2
ObjectId id = new ObjectId();
System.out.println(id);
id = new ObjectId();
System.out.println(id);
//5039924c0364f4a124555e42
// 5039924c0364f4a124555e43 連續(xù)使用,自動(dòng)增加,否則隨機(jī)生成
Mongo m = new Mongo();
DB db = m.getDB("yuexiaosheng");
DBCollection coll = db.getCollection("mycollection");
//使用標(biāo)準(zhǔn)庫(kù)的正則表達(dá)式,可以搜索數(shù)據(jù)里記錄。類(lèi)似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中的時(shí)間類(lèi)型
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中的數(shù)組結(jié)構(gòu)。
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 ] }
//存儲(chǔ)mongodb的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)到數(shù)據(jù)庫(kù)里
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);
//插入的數(shù)據(jù)記錄
//{ "_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
}
}
- MongoDB 常用的數(shù)據(jù)類(lèi)型和基本操作
- Java將日期類(lèi)型Date時(shí)間戳轉(zhuǎn)換為MongoDB的時(shí)間類(lèi)型數(shù)據(jù)
- Mongodb 利用mongoshell進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)方法
- 基于MongoDB數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型和$type操作符詳解
- mongodb 數(shù)據(jù)類(lèi)型(null/字符串/數(shù)字/日期/內(nèi)嵌文檔/數(shù)組等)
- Mongodb 數(shù)據(jù)類(lèi)型及Mongoose常用CURD
- MongoDB常用數(shù)據(jù)類(lèi)型分享
相關(guān)文章
kibana中ES修改某個(gè)字段類(lèi)型問(wèn)題小結(jié)
這篇文章主要介紹了kibana中ES修改某個(gè)字段類(lèi)型問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06Spring解決循環(huán)依賴(lài)問(wèn)題及三級(jí)緩存的作用
這篇文章主要介紹了Spring解決循環(huán)依賴(lài)問(wèn)題及三級(jí)緩存的作用,所謂的三級(jí)緩存只是三個(gè)可以當(dāng)作是全局變量的Map,Spring的源碼中大量使用了這種先將數(shù)據(jù)放入容器中等使用結(jié)束再銷(xiāo)毀的代碼風(fēng)格2022-07-07java實(shí)現(xiàn)在普通類(lèi)中注入service或mapper
這篇文章主要介紹了java實(shí)現(xiàn)在普通類(lèi)中注入service或mapper的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java獲得一個(gè)數(shù)組的指定長(zhǎng)度排列組合算法示例
這篇文章主要介紹了Java獲得一個(gè)數(shù)組的指定長(zhǎng)度排列組合算法,結(jié)合實(shí)例形式分析了java排列組合相關(guān)數(shù)組遍歷、運(yùn)算操作技巧,需要的朋友可以參考下2019-06-06Java8?CompletableFuture?異步多線程的實(shí)現(xiàn)
本文主要介紹了Java8?CompletableFuture?異步多線程的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Java實(shí)現(xiàn)可視化走迷宮小游戲的示例代碼
這篇文章主要介紹了Java如何實(shí)現(xiàn)可視化走迷宮小游戲。本程序適用于java程序員鞏固類(lèi)與對(duì)象、文件讀取、事件響應(yīng)、awt包中各種工具的相關(guān)概念以及對(duì)邏輯能力的鍛煉,需要的可以參考一下2022-11-11Java經(jīng)典快排思想以及快排的改進(jìn)講解
今天小編就為大家分享一篇關(guān)于Java經(jīng)典快排思想以及快排的改進(jìn)講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01