show dbs;–查看所有库
use 库名;–创建库,没有该库就创建库,有就切换为该库
db;–查看当前使用的库
db.dropDatabase();–删除当前库
db.createCollection(name, options);–创建集合
name: 要创建的集合名称
options: 可选参数, 指定有关内存大小及索引的选项
参数说明:
options 可以是如下参数:
字段 | 类型 | 描述 |
---|---|---|
capped | 布尔 | (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。 |
autoIndexId | 布尔 | (可选)如为 true,自动在 _id 字段创建索引。默认为 false。 |
size | 数值 | (可选)为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定该字段。 |
max | 数值 | (可选)指定固定集合中包含文档的最大数量。 |
show collections;–查看都有哪些集合
show tables;–查看都有哪些集合
db.getCollectionInfos();–查看都有哪些集合
db.集合名.drop();–删除指定集合
db.集合名.insert(document);–向集合中插入文档,文档需要时json格式,如db.user.insert({“name”:“1”});
db.集合名.update(
,
,
{
upsert: ,
multi:
}
)
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如
,
,
,set…)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入该数据,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
例:
db.student.update({“name”:“1”},{“age”:“18”});–将名为gqc的第一条数据年龄改为18,注意:原有数据中其他列的值都会改为空
db.student.update({“name”:“1”},{KaTeX parse error: Expected 'EOF', got '}' at position 17: …et:{"age":"18"}}̲);--将名为1的第一条数据年…set:{“age”:“18”}},{upsert:true});–更改名为1的数据,如果没有则新增
db.student.update({“name”:“1”},{$set:{“age”:“18”}},{multi:true});–将名为1的所有数据都更改
db.集合名.remove(
,
)
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档。
db.集合名.remove({});–删除所有数据
db.集合名.find(query);–条件查询
db.集合名.find(query).pretty();–格式化查询
db.集合名.find(query).count();–查询有多少条数据
MongoDB 与 RDBMS Where 语句比较
如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:
操作 | 格式 | 规范 | RDBMS中的类似语句 |
---|---|---|---|
等于 | {<key>:<value>} | db.col.find({"name":"gqc"}).pretty() | where name = ‘gqc’ |
小于 | {<key>:{$lt:<value>}} | db.col.find({"age":{$lt:20}}).pretty() | where age < 20 |
小于或等于 | {<key>:{$lte:<value>}} | db.col.find({"age":{$lte:20}}).pretty() | where age <= 20 |
大于 | {<key>:{$gt:<value>}} | db.col.find({"age":{$gt:20}}).pretty() | where age > 20 |
大于或等于 | {<key>:{$gte:<value>}} | db.col.find({"age":{$gte:20}}).pretty() | where age >= 20 |
不等于 | {<key>:{$ne:<value>}} | db.col.find({"age":{$ne:20}}).pretty() | where age != 20 |
db.集合名.find({key1:value1, key2:value2}).pretty();–多个条件的And查询
例:db.user.find({“name”:“gqc”,“age”:18});–类似于where name=‘gqc’ and age=18
db.col.find({
KaTeX parse error: Expected 'EOF', got '}' at position 42: …ey2:value2} ] }̲).pretty();--多个…or:[{“name”:“gqc”},{“name”:“xk”}]});–类似于where name=‘gqc’ or name=‘xxk’
and和or连用,例:
db.col.find({“age”: {$gt:20}, $or: [{“name”: “xk”},{“sex”: 1}]}).pretty();–类似于where age>20 and(name=‘xk’ or sex=1)
db.集合名.find().skip(开始坐标),limit(显示条数);–分页查询,开始坐标的公式应为(页数-1)*条数
db.集合名.find().sort({排序列:排序方式});–将集合排序,排序方式1为升序,-1为降序
日期使用:
new Date();–当前时间
ISODate();–当前时间
注:new Date();和ISODate();获得的当前时间是格林尼治时间,与我们相差8小时
ISODate(“年-月-日 时:分:秒”);–指定日期时间