1. 启动服务后,打开命令界面
2. 常用命令
- show dbs;-查看所有库
- use 库名;-创建库,没有库就创建,有就切换为该库
- db;-查看当前使用的库
- db.dropDatabase();- 删除当前库
- db.createCollection(name,option); - 创建集合
- name:要创建的集合名称
- options:可选参数,指定有关的内存大小及索引的选项
参数说明: - 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);-向集合中插入文档(注意,这里document是文档的意思)文档需要时json格式,如db.user.insert({key:value});
-
db.集合名.update(
< query>,
< update>,
{
upsert:< boolean>,
multi:< boolean>
}
)- 参数说明:
query:update的查询条件,类似sql,update查询内where后面的
update:update的对象和一些更新的操作符(如 , , ,set…)等,也可以理解为sql update查询内set后面的
upsert:可选,这个参数的意思是,如果不存在update的记录,是否插入该数据,true为插入,默认是false,不插入
multi:可选,mongdb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
db.student.update({“name”:“sss”},{“age”:“18”});-将名为sss的第一条数据年龄改为18。注意:原有数据中其他列的值都会改为空
db.student.update({“name”:“sss”},{$set:{“age”:“18”}});-将名为sss的第一条数据年龄改为18,只会更改该列,其他列的值不变
db.student.update({“name”:“sss”},{ $set:{“age”:“18”}},{upsert:true});-更改名为sss的数据,如果没有则新增
db.student.update({“name”:“sss”},{ $set:{“age”:“18”}},{multi:true});-更改名为sss的所有数据
- 参数说明:
-
db.集合名.remove(
< query>,
< justOne>
)
参数说明:
query:(可选)删除的文档的条件
justOne:(可选)如果设为true或1,则只删除一个文档
db.集合名.remove({});-删除所有数据
db.集合名.find(query);-条件查询
db.集合名.find(query).pretty();-格式化查询
db.集合名.find(query).count();-查询有多少条数据
MongoDB 与 RDBMS where 语句比较
操作 | 格式 | 范例 | RDBMS语句 |
---|---|---|---|
等于 | {< key>:< value>} | db.student.find({“name”:“zxf”}).pretty() | where name=‘zxf’ |
小于 | < key>:{$lt:< value>}} | db.student.find({“age”:{$lt:20}}).pretty() | where age<20 |
小于或等于 | < key>:{$lte:< value>}} | db.student.find({“age”:{$lte:20}}).pretty() | where age<=20 |
大于 | < key>:{$gt:< value>}} | db.student.find({“age”:{$gt:20}}).pretty() | where age>20 |
大于或等于 | < key>:{$gte:< value>}} | db.student.find({“age”:{$gte:20}}).pretty() | where age>=20 |
不等于 | < key>:{$ne:< value>}} | db.student.find({“age”:{$ne:20}}).pretty() | where age!=20 |
- db.集合名.find({key1:value1,key2:value2}).pretty();-多个条件的and查询
例 :db.student.find({“name”:“zxf”,“age”:18});-类似于where name=‘zxf’ and age=18 - db.集合名.find({ $or:[{key1:value1},{key2:value2}] }).pretty();-多个条件的or查询
例:db.student.find({ $or:[{“name”:“zxf”},{“name”:“xff”}] });-类似于where name=‘zxf’ or name=‘xff’ - and 和 or 连用,例:
db.student.find({“age”:{$gt:20}, $or:[{“name”:“zxf”},{“sex”:“2”}] }).pretty();-类似于where age>20 and(name=‘zxf’ or sex=2) - db.集合名.find().skip(开始坐标).limit(显示条数);-分页查询,开始坐标的公式应为(页数-1)*条数
- db.集合名.find().sort({排序列:排序方式});-将集合排序,排序方式1为升序,-1为降序
- 日期使用:
new Date();-当前时间
ISODate();-当前时间
注:new Date();和ISODate();获得的当前时间是格林尼治时间,与我们相差8小事
ISODate(“年-月-日 时:分:秒”);-指定日期时间