MongoDB的数据结构以及简单的操作等

我开始学习MongoDB,所以我会记下笔记。

MongoDB的数据结构

--MongoDB
  +--データベース
  |  +--コレクション
  |  |  +--ドキュメント
  |  |  +--ドキュメント
  |  |
  |  +--コレクション
  |  |  +--ドキュメント
  | 
  +--データベース
  |  +--コレクション

RDB和MongoDB的数据结构比较

    以下表を参照。
RDBでの呼称MongoDBでの呼称databasedatabasetablecollectionrowdocumentcolumnfieldindexindexprimary key_id field
    _idの値について、自動的に一意な文字列が採番されます。

与MySQL进行了查询比较

数据库操作

MySQLMongoDBSHOW DATABASES;show dbsUSE testdb;use testdbCREATE DATABASE testdb;useコマンドで自動生成DROP DATABASE testdb;use testdb
db.dropDatabase()indexindexDESC testdb;なし

集合操作

MySQLMongoDBCREATE TABLE products (…);自動生成 または
db.createCollection(“products”)ALTER TABLE products ADD …;自動生成SHOW TABLES;show collectionsDROP TABLE products;db.products.drop()TRUNCATE TABLE products;db.products.remove()

文件操作

选择

MySQLMongoDBSELECT * FROM products;db.products.find()SELECT name FROM products
WHERE category=’A’
AND stock<=10
ORDER BY name;db.products.find(
{
category : ‘A’ ,
stock : { $lte : 10 }
},
{ name : 1 }
).sort({ name : 1})SELECT COUNT(*) FROM products;db.products.count()SELECT COUNT(*) FROM products
WHERE name LIKE “%camera%”
OR category=’C’;db.products.find(
{
$or : [
{ name : /camera/ },
{ category : ‘C’ }
]
}
).count()SELECT COUNT(stock) FROM products;db.products.find({
stock : { $exists : true }
}).count()SELECT * FROM products LIMIT 1;db.products.findOne()SELECT * FROM products LIMIT 5;db.products.limit(5)

插入

MySQLMongoDBINSERT INTO products
VALUES(‘A’,”camera case”,5);db.products.insert(
{
category : ‘A’ ,
name : “camera case” ,
stock : 5
}
)

更新

MySQLMongoDBUPDATE products SET
stock=10
WHERE category=’A’;db.products.update(
{ category : ‘A’ },
{ $set : { stock : 10 } },
false,
true
)UPDATE products SET
stock=stock+10
WHERE category=’A’;db.products.update(
{ category : ‘A’ },
{ $inc : { stock : 10 } },
false,
true
)

删除

MySQLMongoDBDELETE FROM products
WHERE name=”camera case”;db.products.remove(
{name : “camera case”}
)

参考网站

    http://gihyo.jp/dev/serial/01/mongodb
bannerAds