数据库操作
创建数据库
use DATABASE_NAME
如果数据库不存在,则创建数据库,否则切换到指定数据库。
查看数据库
查看所有的数据库:
show dbs
删除数据库
db.dropDatabase()
删除当前数据库,默认是test
集合操作
创建集合
db.createCollection(name,options)
参数说明:
- name :集合名称
- options :可选参数,指定有关内存大小及索引选项
options参数:
字段 | 类型 | 描述 |
---|---|---|
capped | 布尔 | (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。 |
autoIndexId | 布尔 | (可选)如为 true,自动在 _id 字段创建索引。默认为 false。 |
size | 数值 | (可选)为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定该字段。 |
max | 数值 | (可选)指定固定集合中包含文档的最大数量。 |
删除集合
db.collection.drop()
文档操作
插入文档
db.collection_name.insert(document)
显示文档
db.collection_name.find()
更新文档
update()
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如$,$inc…)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
save()
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
参数说明:
- document : 文档数据。
- writeConcern :可选,抛出异常的级别。
删除文档
db.collection.remove(
<query>,
<justOne>
)
如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
参数说明:
- query :(可选)删除的文档的条件。
- justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
- writeConcern :(可选)抛出异常的级别。
如果你只想删除第一条找到的数据,需要将justOne为1
删除所有的数据:
db.collection.remove({})
查询文档
db.collection.find(query, projection)
参数说明:
- query :可选,使用查询操作符指定查询条件
- projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
格式化显示文档:
db.collection.find().pretty()
MongoDB 与 RDBMS Where 语句比较
操作 | 格式 | 范例 | RDBMS中的类似语句 |
---|---|---|---|
等于 | {< k >:< v >} | db.col.find({“age”:”23”}).pretty() | where name = 23 |
小于 | {< k >:{$lt:< v >}} | db.col.find({“age”:{$lt:23}}).pretty() | where age < 23 |
小于或等于 | {< k >:{$lte:< v >}} | db.col.find({“age”:{$lte:23}}).pretty() | where age <= 23 |
大于 | {< k >:{$gt:< v >}} | db.col.find({“age”:{$gt:23}}).pretty() | where age > 23 |
大于或等于 | {< k >:{$gte:< v >}} | db.col.find({“age”:{$gte:23}}).pretty() | where age >= 23 |
不等于 | {< k >:{$ne:< v >}} | db.col.find({“age”:{$ne:50}}).pretty() | where age != 23 |
MongoDB AND条件
db.collection.find({key1:value1,key2:value2}).pretty()
MongoDB or条件
db.collection.find(
{
$or:[
{key1:value1},{key2:value2}
]
}
).pretty()
AND和OR联合使用
db.collection.find(
{
'key':value // AND
$or:[ // or
{key1:value1},{key2:value2}
]
}
).pretty()