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;なし
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()
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)
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
}
)
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
)
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”}
)
WHERE name=”camera case”;db.products.remove(
{name : “camera case”}
)
参考网站
- http://gihyo.jp/dev/serial/01/mongodb