public static interface hiMongo.Collection
コレクション(collection)に対応します。
hiMongo.DB.in(String)
によって得られます。
hiMongo.Collection coll=hiMongo.use("db01").in("coll_01");
find,update,replase機能など持ちます。
修飾子とタイプ | メソッドと説明 |
---|---|
hiMongo.Aggregator |
aggregate()
aggregate(集計).
|
hiMongo.Aggregator |
aggregate(Object proc_)
aggregate(集計).
|
hiMongo.DB |
back()
DBに戻る.
|
long |
count()
レコード数を得る.
|
long |
count(Object filterJ_)
条件に合致するレコード数を得る.
|
hiMongo.Collection |
createIndex(Object keyset_)
Index設定.
|
hiMongo.Collection |
createIndex(Object keyset_,
Object option_)
Index設定.
|
hiJSON.Engine |
cur_engine()
現状の解析/表示エンジンを得る(cloneではない)
|
hiJSON.Engine |
cur_engineJ()
現状のJSON表示エンジンを得る(cloneではない)
|
hiMongo.Collection |
deleteMany(Object filterJ_)
複数レコード削除.
|
hiMongo.Collection |
deleteOne(Object filterJ_)
1レコード削除.
|
String |
disp(String text_)
|
String |
disp(String text_,
long option_)
|
hiMongo.Collection |
drop()
コレクションを削除します.
|
hiMongo.Collection |
dropIndex(String... index_)
index消去
|
hiMongo.Collection |
dropIndexes()
全index消去.
|
Object |
eval(Object obj_)
{@link hi.db.hiMongo.Accessor#eval(Object)参照
|
<T> T |
eval(Object obj_,
Class<T> class_)
|
<T> T |
eval(Object obj_,
T default_value_)
|
hiMongo.Finder |
find()
全件検索のfind.
|
hiMongo.Finder |
find(Object filterJ_)
検索条件指定のfind.
|
hiMongo.Finder |
find(Object filterJ_,
Object memberJ_)
検索条件とフィールド指定のfind.
|
hiMongo.Collection |
forThis(hiU.ConsumerEx<hiMongo.Collection,Exception> func_)
この集計器に対してラムダ式実行.
|
Object |
get_the_value()
|
<T> T |
get_the_value(Class<T> default_value_)
|
<T> T |
get_the_value(T default_value_)
|
Object |
get(String value_name_)
{@link hi.db.hiMongo.Accessor#get(String)参照
|
<T> T |
get(String value_name_,
Class<T> class_)
{@link hi.db.hiMongo.Accessor#get(String,Class)参照
|
<T> T |
get(String value_name_,
T default_value_)
|
ArrayList<Document> |
getIndexList()
index情報のリストを得る.
|
MongoCollection<Document> |
getMongoCollection()
MongoCollectionを得る.
|
Document |
getValueAsDocument(String text_)
|
hiJSON.Probe |
getValueAsProbe(String text_)
|
hiMongo.Collection |
in(String collectionName_)
カレントDBでin実行(コレクションの切り替え).
|
hiMongo.Collection |
insertMany(Object... jsonTexts_)
リスト形式文字列で複数レコードを追加する.
|
hiMongo.Collection |
insertOne(Object... records_)
1レコード追加(mongoAPIのinsertOne使用).
|
String |
name()
Collection名を得る
|
hiJSON.Engine |
parse_engine()
with_hsonパーズ用エンジン取得.
|
hiMongo.Collection |
replaceOne(Object filterJ_,
Object recordJ_)
1レコード置換する.
|
hiMongo.Collection |
set_the_value(Object obj_)
hi.db.hiMongo.Accessor#set_the_value(Object) 参照 |
hiMongo.Collection |
setValue(String name_,
Object obj_)
|
hiMongo.Collection |
updateMany(Object filterJ_,
Object updateJ_)
条件に合うレコードを全てupdateする.
|
hiMongo.Collection |
updateOne(Object filterJ_,
Object updateJ_)
1レコードupdateする.
|
hiMongo.Finder |
withValue(String value_name_)
指定変数をforEach解析対象とする.
|
MongoCollection<Document> getMongoCollection()
注意:driver直呼びでない場合はnullが返ります
hiJSON.Engine parse_engine()
hiJSON.Engine cur_engine()
hiJSON.Engine cur_engineJ()
hiMongo.DB back()
hiMongo.Collection forThis(hiU.ConsumerEx<hiMongo.Collection,Exception> func_)
func_
- Collectionを引数とするラムダ式hiMongo.Finder find(Object filterJ_, Object memberJ_)
このメソッドは条件設定を行います。実際の検索作業はforEachXXX(),getXXXList()時に行われます。
引数は文字列(String
),テキストファイル(File
)またはノードツリー(node-Object:Document
等)です。
filterJ_
- jsonで条件指定memberJ_
- jsonで取得フィールド指定hiMongo.Finder find(Object filterJ_)
このメソッドは条件設定を行います。実際の検索作業はforEachXXX(),getXXXList()時に行われます。
引数は文字列(String
),テキストファイル(File
)またはノードツリー(node-Object:Document
等)です。
filterJ_
- 条件指定hiMongo.Finder find()
このメソッドは条件設定を行います。実際の検索作業はforEachXXX(),getXXXList()時に行われます。
hiMongo.Collection insertOne(Object... records_)
レコードは拡張JSON、拡張JSONを内容とするテキストFile、拡張JSONの解析済みノードツリー、利用者クラスインスタンスが指定できます。
records_
- レコード(通常mson文字列)。複数可hiMongo.Collection drop()
コレクションはDBから削除されますが連続してアクセスは可能です。
insertが発行されれば現状の名前のコレクションが新たに生成されレコードが挿入されます。
hiMongo.use("db01") .in("coll_01") .drop() // コレクションが削除される .insertOne("{type:'A',value:1000}");// コレクションが生成され、レコードが追加される
long count()
long count(Object filterJ_)
findに与える条件と同等の条件を与え、該当レコードの個数を得ることが出来ます。
hiMongo.DB db= hiMongo.use("testDB"); System.out.println("count of type B|C = "+ db.in("coll_01").count("{$or:[{type:'B'},{type:'C'}]}"));
filterJ_
- 条件hiMongo.Collection insertMany(Object... jsonTexts_)
レコードの単純並び形式の文字列でレコードを追加します。
記述はJSONの配列形式("[{...},{...}...]")の形です。一個だけの記述("{...}")も許されます
nsertMany()に配列または複数引数を与えることも可能です。
レコードは拡張JSON、拡張JSONを内容とするテキストFile、拡張JSONの解析済みノードツリー、利用者クラスインスタンスのリストで指定します。
一つのリストの中に複数の形式が混ざることは許されません。
String _records= "[{type:'A',value:12.3,date:ISODate('2020-08-17T07:07:00.000Z')}"+ ",{type:'A',value:4.56,date:ISODate('2020-08-17T07:07:10.000Z')}"+ ",{type:'B',value:2001,date:ISODate('2020-08-17T07:07:20.000Z')}]"; String _record2= "{type:'A',value:7.89,date:ISODate('2020-08-17T07:07:30.000Z')}"; hiMongo.DB db =hiMongo.use("db02"); hiMongo.Collection _coll=db.in("coll_01"); _coll.insertMany(_records,_records2); // 複数の文字列をセット可能 db.close();
コメントが入ったり配列形式でない形でレコードが並んでいる記述のファイルを読むことも出来ます。
=== ファイル data.hson // 複数レコード記述が単純に並んでいる {type:'A',value:12.3,date:ISODate('2020-08-17T07:07:00.000Z')} {type:'A',value:/*4.56*/3.33,date:ISODate('2020-08-17T07:07:10.000Z')} // ブロックコメント {type:'B',value:2001,date:ISODate('2020-08-17T07:07:20.000Z')} // コメント {type:'A',value:7.89,date:ISODate('2020-08-17T07:07:30.000Z')} === プログラム hiMongo.DB db= hiMongo.use("db01"); db.in("coll_01").drop() .with_hson() .insertMany(new File("data.hson"));
jsonTexts_
- json記述hiMongo.Aggregator aggregate(Object proc_)
集計手続きを設定します。
集計作業は集計器で行います。
proc_
- 集計手続き [{...},{...}...]hiMongo.Aggregator aggregate()
集計手続き無で集計器を作成します。
集計手続きは集計器のmatch()メソッド
などで追加出来ます。
hiMongo.Collection updateOne(Object filterJ_, Object updateJ_)
hiMongo.DB db=hiMongo.use("db01"); db.in("coll_01") .updateOne("{$and:[{type:'A'},{value:4.56}]}", "{$set:{value:0.15}}"); --- 対応するmongo-shell記述 use db01 db.coll_01.updateOne({$and:[{type:'A'},{value:4.56}]}, {$set:{value:0.15}});
単純な値の置き換えを行う$setの他に値の増減を行う$incなども用意されています。 (更新の演算子参照)
filterJ_
- 条件updateJ_
- 置き換えフィールド指定hiMongo.Collection updateMany(Object filterJ_, Object updateJ_)
引数は文字列(String
),テキストファイル(File
)またはノードツリー(node-Object:Document
等)です。
hiMongo.DB db=hiMongo.use("db01"); db.in("coll_01") .updateMany("{$and:[{type:'A'},{value:{$lt:1.00}}]}}", "{$set:{value:1.00}}") --- 対応するmongo-shell記述 use db01 db.coll_01.updateOne({$and:[{type:'A'},{value:{$lt:1.00}}]}, {$set:{value:1.00}});
filterJ_
- 条件(String,File,node)updateJ_
- 置き換えフィールド指定(String,File,node)hiMongo.Collection replaceOne(Object filterJ_, Object recordJ_)
条件に合致するレコードを1個だけ置き換えます。
レコードは拡張JSON、拡張JSONを内容とするテキストFile、拡張JSONの解析済みノードツリー、利用者クラスインスタンスで指定します。
filterJ_
- 条件recordJ_
- 新規レコード内容hiMongo.Collection deleteOne(Object filterJ_)
条件に合致するレコードを1個だけ削除。
filterJ_
- 条件hiMongo.Collection deleteMany(Object filterJ_)
条件に合致するレコードを1個だけ削除。
filterJ_
- 条件hiMongo.Collection createIndex(Object keyset_, Object option_)
指定フィールドにindexを付加します。
keyset_にはフィールド名と昇順(-1)、降順(1)の指定を行います。昇順/降順の違いは気にする必要はほぼ有りません。
option_にはJSONデータで{}{unique:true}{expireAfter:秒数}を設定します。
{unique:true}を設定すると、そのフィールドはユニーク値を持つものとなり、同値の別レコードのinsertはエラーとなります。
{expireAfter:秒数}を設定すると、指定秒数を超えたレコードは削除されます。
{expireAfterMinutes:分},{expireAfterHours:時},{expireAfterDays:日}の指定も可能です。
IndexOptions
を直接置くことも出来ます。
keyset_
- フィールドと昇順降順指定のセットoption_
- {}{unique:true}{expireAfter:秒数}hiMongo.Collection createIndex(Object keyset_)
keyset_
- キーと昇順降順指定のセットhiMongo.Collection dropIndexes()
hiMongo.Collection dropIndex(String... index_)
hiMongo.Collection in(String collectionName_)
collectionName_
- コレクション名String name()
hiMongo.Finder withValue(String value_name_)
指定変数をfind結果の代わりに解析対象とします。
hiMongo.DB db= hiMongo.use("db01") db.setValue("#TEMP","[{type:'X',value:1},{type:'Y',value:13},{type:'Z',value:11}]"); .withValue("#TEMP") .forEachMson(Rm->System.out.println(Rm)) //type'X'~'Z'のレコードが表示される
value_name_
- 変数名hiMongo.Collection setValue(String name_, Object obj_)
<T> T get(String value_name_, T default_value_)
<T> T get(String value_name_, Class<T> class_)
<T> T eval(Object obj_, T default_value_)
hiMongo.Collection set_the_value(Object obj_)
hi.db.hiMongo.Accessor#set_the_value(Object)
参照Object get_the_value()
<T> T get_the_value(T default_value_)
<T> T get_the_value(Class<T> default_value_)
hiJSON.Probe getValueAsProbe(String text_)