MongoDB shell是MongoDB自带的一个交互式JavaScript shell,能够访问、配置和管理MongoDB数据库、用户等。使用这个shell可执行各种任务,从设置用户账户
到创建数据库,再到查询数据库内容,无所不包。
启动MongoDB shell
MongoDB shell是一个可执行的文件,位于MongoDB安装路径下的/bin文件夹中。可执行命令mongo
./mongo --port 27017
help
use
show
log [name] : 显示内存中日志最后一部分,如果没有指定日志名,则默认为global
exit : 退出MongoDB shell
查询选择器
$lte 表示的是小于或等于
查询id为9的
db.customers.find({id:9})
查询name=tome并且age=20的
db.customers.find({name:"tom",age:20})
$lt 表示的是小于
查询年龄小于25的
db.customers.find({age:{$lt:25}})
$lte 表示的是小于或等于
查询年龄小于等于28的
db.customers.find({age:{$lte:28}})
$gt 表示的是大于
$gte表示的是大于或等于
查询年龄大于25且小于或等于30的
db.customers.find({age:{$gt:25,$lte:30}})
增删改查
插入语句
db.customers.insert({id:1,name:"tom",age:20,mobile:'15864710523',address:"青岛市",create_time:new Date()})
修改语句
update修改分为两种,一种是只针对具体的目标字段,其他不变;另一种是取代性的更改,即修改具体目标字段后,其他的字段会被删除。
update语法格式如下:
db.collection.update(query, update, , )
query 参数是一个查询选择器,值类型为document
update 参数为需要修改的地方,值类型为document,如果update参数只包含字段选项,没有操作符,则会发生取代性的更改。
upsert 为一个可选参数,boolean类型,默认值为false。当值为true时,update方法将更新匹配到的记录,如果找不到匹配的文档,则将插入一个新的文档到集合中。
multi 为一个可选参数,boolean类型,表示是否更新匹配到的多个文档,默认值为false,此时update方法只会更新匹配到的第一个文档;当为true时,update方法将更新所有匹配到的文档。
1、更改指定的字段
db.customers.update({name:"tom"}, {$set:{name:"tomcat"},$inc:{age:5}})
这个操作将更改集合中与name:”tom”匹配的第一个文档,将其中的字段name设置为”tomcat”,字段age增加5,其它字段保存不变。
2、更改指定字段而且其它字段被 清除掉
db.customers.update({name:"tomcat"}, {name:"weblogic"})
3、更改多个文档中的指定字段
db.customers.update({name:"tom1"}, {$set:{address:"山东省 青岛市"}}, {multi:true})
由于利用了可选参数multi,这个操作将更改集合中与name:”tom1”匹配的所有文档,将其中的字段address设置为。。,其它字段不变
4、update找不到匹配的文档时则插入新文档
db.customers.update({name:"ipad"}, {$set:{age:30}}, {upsert:true})
因为利用了可选参数upsert,这个操作如果找不到匹配的文档,就回插入新的文档。
删除语句
remove方法的格式如下:
db.collection.remove(, )
query 为可选参数,查询选择器,类型关系数据库中的where条件语句。
justOne 参数也是可选参数,是一个boolean类型的值,表示是否只删除匹配的一个文档,相当于关系数据库中的limit 1 条件
如果remove没有指定任何参数,它将删除集合中的所有文档,但是不会删除集合对应的索引数据。如果想删除集合中的所有文档,同时也删除集合的索引,可以使用MongoDB针对集合提供的drop方法。
1、删除匹配的所有文档
db.customers.remove({name:"weblogic"})
2、删除匹配的第一个文档
db.customers.remove({id:5}, 1)
3、删除所有文档,但不会删除索引
db.customers.remove({})