数据库
查看所有数据库
show dbs 或 show databases # 查看所有数据库
db # 查看当前所在数据库名
使用数据库
use 数据库的名字 # 使用数据库,如果没有则新建一个,但是新建的那个并不会显示在数据库中,需要添加信息他才会显示
删除数据库
db.dropDatabase() # 删除当前数据库
集合
创建集合
db.createCollection(name, options) # 创建集合,类似数据库中的表,其实在MongoDB中插入文档时会自动生成与数据库同名的集合
options 为可选参数
a.
capped – (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。
b.
size – (可选)为固定集合指定一个最大值,即字节数。
如果 capped 为 true,也需要指定该字段。
c.
max – (可选)指定固定集合中包含文档的最大数量。
查看集合
show tables 或 show collections # 查看数据库中的集合
删除集合
db.集合名.drop() # 删除集合
文档
插入文档
db.集合名.insert(document) # 插入文档,若插入的数据主键已经存在,则会抛出错误,并不会储存
db.集合名.insertOne(document) # 插入一条文档,若插入的数据主键存在,则更改数据,不存在就存入
db.集合名.insertMany(documents) # 插入多条文档
如果集合名 MongoDB 中没有,那么MongoDB 会自动创建该集合并插入文档
当然,我们在 MongoDB 中也可以使用变量
更改文档
db.collection.update(
query,
update,
{
upsert: boolean,
multi: boolean,
writeConcern: document
}
) # 更新文档,如果_id不存在,更改失败
其中参数含义
a.
query : update的查询条件,类似sql update查询内where后面的。
b.
**update** : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
c.
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
d.
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
e.
writeConcern :可选,抛出异常的级别。
db.collection.save(
document,
{
writeConcern: document
}
) # 更改文档,_id存在替换文档,不存在就插入
删除文档
db.collection.remove(
,
{
justOne: ,
writeConcern:
}
) # 删除文档
其中参数含义
a.
query :(可选)删除的文档的条件。
b.
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
c.
writeConcern :(可选)抛出异常的级别。
db.collection.remove({}) # 删除所有文档
查询文档
db.collection.find(query, projection) # 查询文档
其中参数的含义
a.
query :可选,使用查询操作符指定查询条件
b.
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
db.collection.find().pretty() # 使查询的文档更易阅读
db.collection.find({key1:value1, key2:value2}) # MongoDB AND 条件
db.collection.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
) # MongoDB OR 条件