MongoDBとは
#
インストール
#
mongodb(v4.0.5)のコンソールからの使い方色々
#
Excel, Oracle, MongoDB, Object の大まかな比較
#
Excel | Oracle | MongoDB | Object |
---|
ブック | Schema | Database | 特になし |
シート | Table | Collection | 特になし |
行 | Row | Document | Object群 |
列 | Column | Field | Key |
セル | Field | Value | Value |
起動方法
#
$ mongod // mongodbが起動する
$ CNTL-C // mongodbを停止する
// か,
$ sudo service mongod start
$ sudo service mongod stop
コンソールからのアクセス方法
#
$ mongo // アクセスして,
> exit // 終了.
bye
dbの作成&中身を見る
#
> use sample // sampleというdbを作成 or そこにアクセスする
switched to db sample
> show dbs // 存在するdbの種類を見せてくれる
admin 0.000GB
local 0.000GB
sample 0.000GB // こんな感じで帰ってくる
> db.stats() // これで中身の情報を見せてくれる
Collection(ディレクトリ・フォルダみたいなもの)の作成
#
> db.createCollection("products") // productsというCollectionを作成する
{ "ok" : 1}
> show collections
products
dbをコピー&削除する
#
> db.copyDatabase('sample', 'new_sample') // mongodb4.0で非推奨になった
{ "ok" : 1}
> show dbs
admin 0.000GB
local 0.000GB
new_sample 0.000GB
sample 0.000GB
> use new_sample
> db.dropDatabase()
{ "dropped" : "new_sample", "ok" : 1 }
> show dbs
admin 0.000GB
local 0.000GB
sample 0.000GB
Collectionの名前変更
#
> db.createCollection('pricee')
{ "ok" : 1 }
> show collections
pricee
products
> db.pricee.renameCollection('price', true) // ここのtrueは名前変更前のcollectionは削除するということ
{ "ok" : 1 }
> show collections
price
products
Collectionの削除
#
> db.price.drop()
true
> show collections
products
CollectionにDocumentを追加
#
> db.products.insert({name: 'pen', price: 150})
WriteResult({ "nInserted" : 1 })
オペレーターの種類
#
オペレーター | 意味 |
---|
$eq | = |
$gt | > |
$gte | >= |
$lt | < |
$lte | <= |
$ne | != |
$regex | 正規表現 |
Documentを表示&検索
#
> db.products.find() // collectionの中身のdocumentを全部表示
{ "_id" : ObjectId("5c2d4199c5195731b5149377"), "name" : "pen", "price" : 150 }
> db.products.find({price: {$gt: 100}}) // priceが100より大きいものを検索
{ "_id" : ObjectId("5c2d4199c5195731b5149377"), "name" : "pen", "price" : 150 }
> db.products.find({price: {$gt: 200}}) // priceが200より小さいものを検索
>
> db.characters.find().pretty() // charactersの中身を下のように表現してくれる
{
"_id" : ObjectId("5c280309156ceb35b1564cff"),
"name" : "sola",
"age" : 33,
"__v" : 0
}
Document内容の更新
#
> db.products.update({name: {$eq: 'pen'}}, {$set: {price: 200}}, {upsert: false, multi: true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.products.find()
{ "_id" : ObjectId("5c2d4199c5195731b5149377"), "name" : "pen", "price" : 200 }
Documentの削除
#
> db.products.remove({name: {$eq: 'pen'}})
WriteResult({ "nRemoved" : 1 })
> db.products.find()
>