1. 与传统数据库概念差别
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持,由嵌入文档替代 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
2. 数据库信息储存在集合中,例如: dbname.system.namespaces
3. 特殊数据类型
Array:数组或列表或多个值储存成一个键
Object:用于内嵌文档
Symbol:存储特殊符号类型的语言
Binary Data:二进制数
code:代码,存储JS代码
Regular expression:存储正则表达式
4. 创建数据库: use 表名
5. 创建集合:db.createCollection("first")
在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。例如:db.mycol2.insert({"name" : "菜鸟教程"})
6. 删除集合:db.集合名.drop()
7. 插入文档:
db.集合名.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
8. 更新文档:
update方法:使用条件来筛选需要更新的文档
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
例子:
db.first.update(
{size:56},
{$set:
{title:"56Title"}
}
)
save方法:使用_id来确定文档,进行替换更新
9. 删除文档:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
10. 查询文档
db.collection.find(query)
比对语句
操作 | 格式 | 范例 | RDBMS中的类似语句 |
---|---|---|---|
等于 | {<key>:<value> } | db.col.find({"by":"菜鸟教程"}).pretty() | where by = '菜鸟教程' |
小于 | {<key>:{$lt:<value>}} | db.col.find({"likes":{$lt:50}}).pretty() | where likes < 50 |
小于或等于 | {<key>:{$lte:<value>}} | db.col.find({"likes":{$lte:50}}).pretty() | where likes <= 50 |
大于 | {<key>:{$gt:<value>}} | db.col.find({"likes":{$gt:50}}).pretty() | where likes > 50 |
大于或等于 | {<key>:{$gte:<value>}} | db.col.find({"likes":{$gte:50}}).pretty() | where likes >= 50 |
不等于 | {<key>:{$ne:<value>}} | db.col.find({"likes":{$ne:50}}).pretty() | where likes != 50 |
逗号隔开表示AND
db.col.find({key1:value1, key2:value2}).pretty()
关键词$or 表达OR
db.first.find(
{
$or : [
{size : {$gte:56}},
{title : "testTitle"}
]
}
).pretty()
两者混用
db.col.find(
{
"likes": {$gt:50},
$or: [
{"by": "菜鸟教程"},
{"title": "MongoDB 教程"}
]
}
).pretty()
11. type操作符
查找title数据类型为2的文档:
db.col.find({"title" : {$type : 2}})