| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
4,828 バイト追加 、 2021年6月16日 (水) 00:04
bindIp: 0.0.0.0
</pre>
===設定===
----
*/etc/momgod.conf
*[http://docs.mongodb.org/manual/reference/configuration-options/ リファレンス]
 
 
====systemlog====
{| class="wikitable"
|-
! scope="col"| パラメータ
! scope="col"| 内容
! scope="col"| 備考
|-
| destination
| ログの送り先、fileまたはsyslogを指定
|
|-
| path
| ログを出力するファイル
|
|-
| logAppend
| trueの場合、ログを追記
|
|-
| logRotage
| ログローテーション。renameもしくはreopen
|
|-
|}
 
====storage====
{| class="wikitable"
|-
! scope="col"| パラメータ
! scope="col"| 内容
! scope="col"| 備考
|-
 
| dbPath
| データファイル保存先
|
|-
| journal enabled
| ジャーナルを使用するかどうか
|
|-
| engine
| ストレージエンジンを指定
|
|-
|
*wiredTiger:
**engineConfig:
***cacheSizeGB:
| 使用するメモリのキャッシュサイズ
|
|-
|
*wiredTiger:
**collectionConfig:
***blockCompressor:
| 格納データを圧縮できる。圧縮率を指定できる
*none:圧縮しない
*snappy:圧縮する
*zlib:snappyより高圧縮率で圧縮
|
|-
|
|
|
|-
|
|
|
|-
|
|
|
|-
|
|
|
|-
|}
 
===monogoシェルの実行===
----
===フィールドを新規追加===
----
*既存のフィールド($RaceId.Year ・・・)を接続して、新しいフィールド(_RaceId)を追加
<pre>
db.H1.update(
{"_id": ObjectId("60a7c66cb07a3cd94da9958c") },
[
{"$set": { "_RaceId": { $concat: [ "$RaceId.Year", "-", "$RaceId.MonthDay", "-","$RaceId.JyoCD", "-","$RaceId.Kaiji", "-","$RaceId.Nichiji", "-","$RaceId.RaceNum" ] } } }
]
)
</pre>
==削除==
===コレクションの結合===
----
*aggregationではコレクションを結合できる
*$lookup を利用する
<pre>
])
</pre>
=====結合($lookup)=====
<pre>
db.RA.aggregate([
{ $lookup:{
from:"SE",
localField:"_RaceId",
foreignField:"_RaceId",
as:"SE"
}}
])
</pre>
=====検索条件を指定して結合($match)=====
<pre>
db.RA.aggregate([
{ $match: { "_id" : ObjectId("60a7c617b07a3cd94da991b7") } }, // 検索条件
{ $lookup:{
from:"SE",
localField:"_RaceId",
foreignField:"_RaceId",
as:"SE"
}}
]) // 結合条件
</pre>
=====表示フィールドの絞り込み($project) =====
<pre>
db.RA.aggregate([
{ $match: { "_id" : ObjectId("60a7c617b07a3cd94da991b7") } },
{ $lookup:{
from:"SE",
localField:"_RaceId",
foreignField:"_RaceId",
as:"SE"
}},
{ $project: {
"RaceInfo":1,
"JyokenInfo":1,
"SE":1
}} // 表示フィールドの絞り込み
]) 
</pre>
[[File:mongo_lookup.png|600px]]
 
===一括高速処理(Bulk)===
----
====一括更新(update)====
----
<pre>
var bulk = db.H6.initializeUnorderedBulkOp();
bulk.find({}).update(
[{"$set": { "_RaceId": { $concat: [ "$RaceId.Year", "-", "$RaceId.MonthDay", "-","$RaceId.JyoCD", "-","$RaceId.Kaiji", "-","$RaceId.Nichiji", "-","$RaceId.RaceNum" ] } } }]
);
bulk.execute();
</pre>
 
====一括登録または更新(upsert)====
----
====一括削除(deleteremove)====
----
 
==インデックス==
===作成===
----
*1:昇順、-1:降順
<pre>
db.collection.createIndex(
{ key1:1, key2:-1, ・・・},
{ <インデックスオプション>}
)
</pre>
====インデックスオプション====
----
{| class="wikitable"
|-
! scope="col"| 項目
! scope="col"| 説明
! scope="col"| 備考
|-
| background
| バックグラウンド実行
| データ大量時、アプリケーションへの応答遅延防止など
|-
| name
| インデックス名を指定
|
|-
| unique
| ユニークインデックス
| null不可
|-
| partialFilterExpression
| フィルタを作成し一致したドキュメントの部分インデックスを作成
| 以下を指定できる
*等式(key: value , $eq)
*$exists
*$gt, $gte, $lt, $lte
*$type ・$and
|-
|}
====インデックス種類====
----
{| class="wikitable"
|-
! scope="col"| 種類
! scope="col"| 説明
! scope="col"| 備考
|-
| デフォルトインデックス
| _idフィールドに作成される
| 削除できない
|-
| テキストインデックス
| 文字列コンテンツに対するテキスト検索クエリをサポートするテキストインデックスを作成
| 作成には、keyに"text"を指定する
<pre>
db.collection.createIndex({ key: "text" })
</pre>
|-
| TTLインデックス
| 特定の時間または時刻にドキュメントを自動削除するために利用する
| Date型、Date型を含む配列、expireAfterSecondsが経過したドキュメントを自動で削除する
<pre>
db.collection.createIndex({
{key: 1},
{expireAfterSeconds:<秒数>}
})
</pre>
|-
| ハッシュインデックス
| フィールド値のハッシュをインデックスにする
| ランダム分布をも持つが、値一致飲みサポート
|-
|地理的インデックス
|プレーンジオメトリ、球面ジオメトリ
|
|}
 
===確認===
----
<pre>
db.collection.getIndexes()
</pre>
===削除===
----
*上記で確認した、nameを指定する
<pre>
db.collection.dropIndex("インデックス名")
</pre>
===再構築===
----
<pre>
db.collection.reIndex()
</pre>
==Tips==

案内メニュー