mongodb入門-シロ
–日常的な収集
概要
MongoDBは高性能、オープンソース、モードレスのドキュメント型データベースで、現在のNoSqlデータベースで人気のあるデータベースです.従来のリレーショナル・データベースまたはキー/値ストレージの代わりに、多くのシーンで使用できます.MongoDBは、キー値(key=>value)のペアからなるデータ構造を持つドキュメントとしてデータを格納します.MongoDBドキュメントはJSONオブジェクトに似ています.フィールド値には、他のドキュメント、配列、およびドキュメント配列を含めることができます.
とくせい
MongoDBは、リレーショナル・データベースではなくJSONに直接アクセスするドキュメント向けのデータベースです.これは、配列などの複雑なデータ型をドキュメントに直接挿入でき、ドキュメントのkeyやvalueが固定的なデータ型やサイズではないため、MongoDBがより柔軟であることを意味します.したがって,開発者はMongoDBを使用する際にリレーショナル・データベースの「テーブル」などのデータベース・オブジェクトを事前定義する必要がなく,データベースの設計が非常に便利になり,開発の進捗を大幅に向上させることができる.データベースではなくアプリケーションによってデータ構造が保証されます.
データベースに対応
SQL用語/概念
MongoDB用語/概念
説明/説明
database
database
データベース#データベース#
table
collection
データベース・テーブル/コレクション
row
document
データレコード行/ドキュメント
column
field
データフィールド/ドメイン
index
index
索引
table joins
テーブル接続、MongoDBはサポートされていません
primary key
primary key
メインキー、MongoDBが自動的に_idフィールドをプライマリキーに設定
mongodbインデックス
構文のキー値は作成するインデックスフィールド、1は昇順でインデックスを作成するよう指定し、降順でインデックスを作成する場合は-1を指定します.
既存のデータのドキュメントにインデックスを作成する場合は、MongoDBがバックグラウンドでインデックスを作成するように、次のコマンドを実行します.これにより、作成時に他の操作がブロックされません.しかし、ブロックでインデックスを作成すると、作成プロセス全体が効率的になりますが、作成時にMongoDBは他の操作を受信できません.*
タイミング削除
expireAfterSeconds:xxはxx秒後に自動的にドキュメントを削除するように設定されています.まず、dateタイプのフィールドが必要です.その後、このdateフィールドでインデックスを作成します.
注意:即時実行ではありません:Documentの期限切れのデータをスキャンして削除するのは独立したスレッド実行で、デフォルト60 sは1回スキャンして、削除してもすぐに削除に成功するとは限りません.
mongodb文
useデータベース名データベースに入るデータベースが存在しない場合、データベースを作成する
db現在のデータベースの表示
show dbsはコンテンツが空でないデータベースを表示します
db.createCollection(「テーブル名」)長さに制限のないテーブルを作成
db.createCollection('テーブル名',{capped:true,size:1000})長さを制限するテーブルを作成
db.表名drop()コレクションの削除
show collectionsはすべてのテーブルを表示します
db.表名find()テーブルデータの検索
db.表名find({カラム名:データ1})条件付きクエリー
db.表名find({列名:データ1}).pretty()pretty()はテープの結果をフォーマットすると、構造や内容を見極めやすくなります
db.表名findOne({カラム名:データ1})は条件付きでクエリーされ、最初のエントリのみが返されます.
db.表名update({列名:データ1},{列名:データ2})データ1を検索し、データ2に置き換えます.
db.表名update({列名:データ1},{$set:{列名:データ2}})は、列がデータ1であることを検索し、すべてのデータ1をデータ2に置き換える
db.表名remove({列名:データ1},{justOne:true})データ1の行を削除し、justOneがtrueの場合は1つ削除し、falseの場合は複数の比較演算子を削除します.
$lt未満がl t e以上lte以上gt以上gt e以上gte以下gte以下gte以下gte以下ne以下
論理演算子:
$orまたは$inをカンマで直接接続できます.の内
ソート:sort()
db.表名find().sort({フィールド:パラメータ})パラメータが1昇順パラメータが-1降順
ページング:limit()
db.表名find().Limit(パラメータ)パラメータは取得したエントリ数です
db.表名find().skip(パラメータ)パラメータはスキップされたエントリ数です
db.表名count({カラム名:データ1})統計データのエントリ数
db.表名find(カラム名:データ1).distinct(‘デリバリーフィールド’,{カラム名:データ2})重複除外
Springboot接続mongodb
1、導入パッケージ
2、データソースの構成
3、エンティティに注記を追加する
エンティティに@Document注記を追加します.collection=「対応するテーブル名」です.
属性に@Filed注記を追加します.値は対応するフィールド名です.
4、業務層でMongoDbを使用する方法:
MongoTemplateの簡単な使用
エンティティクラスを作成し、理解しやすい
添削して調べる.
概要
MongoDBは高性能、オープンソース、モードレスのドキュメント型データベースで、現在のNoSqlデータベースで人気のあるデータベースです.従来のリレーショナル・データベースまたはキー/値ストレージの代わりに、多くのシーンで使用できます.MongoDBは、キー値(key=>value)のペアからなるデータ構造を持つドキュメントとしてデータを格納します.MongoDBドキュメントはJSONオブジェクトに似ています.フィールド値には、他のドキュメント、配列、およびドキュメント配列を含めることができます.
とくせい
MongoDBは、リレーショナル・データベースではなくJSONに直接アクセスするドキュメント向けのデータベースです.これは、配列などの複雑なデータ型をドキュメントに直接挿入でき、ドキュメントのkeyやvalueが固定的なデータ型やサイズではないため、MongoDBがより柔軟であることを意味します.したがって,開発者はMongoDBを使用する際にリレーショナル・データベースの「テーブル」などのデータベース・オブジェクトを事前定義する必要がなく,データベースの設計が非常に便利になり,開発の進捗を大幅に向上させることができる.データベースではなくアプリケーションによってデータ構造が保証されます.
データベースに対応
SQL用語/概念
MongoDB用語/概念
説明/説明
database
database
データベース#データベース#
table
collection
データベース・テーブル/コレクション
row
document
データレコード行/ドキュメント
column
field
データフィールド/ドメイン
index
index
索引
table joins
テーブル接続、MongoDBはサポートされていません
primary key
primary key
メインキー、MongoDBが自動的に_idフィールドをプライマリキーに設定
mongodbインデックス
構文のキー値は作成するインデックスフィールド、1は昇順でインデックスを作成するよう指定し、降順でインデックスを作成する場合は-1を指定します.
db.collection.createIndex(keys, options)
:db.col.createIndex({"title":1})
db.col.createIndex({"title":1,"description":-1})
:
> db.col.getIndexes()
:
db.col.dropIndex({"title":1})
既存のデータのドキュメントにインデックスを作成する場合は、MongoDBがバックグラウンドでインデックスを作成するように、次のコマンドを実行します.これにより、作成時に他の操作がブロックされません.しかし、ブロックでインデックスを作成すると、作成プロセス全体が効率的になりますが、作成時にMongoDBは他の操作を受信できません.*
db.col.ensureIndex({"username":1},{"background":true})
タイミング削除
expireAfterSeconds:xxはxx秒後に自動的にドキュメントを削除するように設定されています.まず、dateタイプのフィールドが必要です.その後、このdateフィールドでインデックスを作成します.
// (lastModifiedDate.addHours(1))
db.log_events.createIndex( { "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 } )
// 2018-01-22 15:00:00
db.log_events.insert( {
"lastModifiedDate": new Date('Jan 22, 2018 14:00:00'),
"logEvent": 2,
"logMessage": "Success!"
} )
注意:即時実行ではありません:Documentの期限切れのデータをスキャンして削除するのは独立したスレッド実行で、デフォルト60 sは1回スキャンして、削除してもすぐに削除に成功するとは限りません.
mongodb文
useデータベース名データベースに入るデータベースが存在しない場合、データベースを作成する
db現在のデータベースの表示
show dbsはコンテンツが空でないデータベースを表示します
db.createCollection(「テーブル名」)長さに制限のないテーブルを作成
db.createCollection('テーブル名',{capped:true,size:1000})長さを制限するテーブルを作成
db.表名drop()コレクションの削除
show collectionsはすべてのテーブルを表示します
db.表名find()テーブルデータの検索
db.表名find({カラム名:データ1})条件付きクエリー
db.表名find({列名:データ1}).pretty()pretty()はテープの結果をフォーマットすると、構造や内容を見極めやすくなります
db.表名findOne({カラム名:データ1})は条件付きでクエリーされ、最初のエントリのみが返されます.
db.表名update({列名:データ1},{列名:データ2})データ1を検索し、データ2に置き換えます.
db.表名update({列名:データ1},{$set:{列名:データ2}})は、列がデータ1であることを検索し、すべてのデータ1をデータ2に置き換える
db.表名remove({列名:データ1},{justOne:true})データ1の行を削除し、justOneがtrueの場合は1つ削除し、falseの場合は複数の比較演算子を削除します.
$lt未満がl t e以上lte以上gt以上gt e以上gte以下gte以下gte以下gte以下ne以下
論理演算子:
$orまたは$inをカンマで直接接続できます.の内
ソート:sort()
db.表名find().sort({フィールド:パラメータ})パラメータが1昇順パラメータが-1降順
ページング:limit()
db.表名find().Limit(パラメータ)パラメータは取得したエントリ数です
db.表名find().skip(パラメータ)パラメータはスキップされたエントリ数です
db.表名count({カラム名:データ1})統計データのエントリ数
db.表名find(カラム名:データ1).distinct(‘デリバリーフィールド’,{カラム名:データ2})重複除外
Springboot接続mongodb
1、導入パッケージ
org.springframework.boot
spring-boot-starter-data-mongodb
1.5.9.RELEASE
2、データソースの構成
spring.data.mongodb.uri= mongodb://
3、エンティティに注記を追加する
エンティティに@Document注記を追加します.collection=「対応するテーブル名」です.
属性に@Filed注記を追加します.値は対応するフィールド名です.
@Getter
@Setter
@Document(collection = "User")
public class User {
/*
id:
*/
@Field("id")
private String id;
/*
*/
@Field("UserName")
private String userName;
/*
*/
@Field("sex")
private String sex;
}
4、業務層でMongoDbを使用する方法:
@Service
public class UserServiceImpl implements UserService {
@Resource
private MongoTemplate mongoTemplate;
@Override
public long getCount() {
Query query = new Query();
long count = mongoTemplate.count(query,User.class);
return count;
}
}
MongoTemplateの簡単な使用
エンティティクラスを作成し、理解しやすい
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
@Document(collection = "collection_name")
public class UserPO {
@Indexed
@Field("user_id")
private Long userId;
@Field("username")
private String username;
@Field("password")
private String password;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
添削して調べる.
//
UserPO userPO = new UserPO();
userPO.setUserId(1L);
userPO.setUsername("username");
userPO.setPassword("password");
mongoTemplate.insert(userPO);
//
LinkedList<UserPO> pos = Lists.newLinkedList();
UserPO userPO = new UserPO();
userPO.setUserId(1L);
userPO.setUsername("username");
userPO.setPassword("password");
pos.add(userPO);//
mongoTemplate.insertAll(pos);
//
Query query=new Query(Criteria.where("_id").is(id));
mongoTemplate.remove(query,UserPO.class);
//
Query query=new Query(Criteria.where("_id").is(id));
Update update = Update.update(" ", " ");
mongoTemplate.updateFirst(query, update, UserPO.class);
//
//
Query query = new Query();
query.skip(" ").limit(" ");
return mongoTemplate.find(query, UserPO.class);
// 1, is(" ") and(" 2").is(" 2")
Query query=new Query(Criteria.where(" 1").is(" 1"));
return mongoTemplate.find(query, UserPO.class);