一、数据库基础操作
//进入mongo语法环境
mongo
//查看现有数据库列表
show dbs
//切换到admin数据库,如没有即创建admin数据库
use admin
//使用use切换后,db即指向当前数据库
//新建的数据库不在列表中,是因为其内没有数据,添加条数据即可显示
db.runoob.insert({"name":"测试"})
//删除当前数据库
db.dropDatabase()
二、集合(数据库表)基础操作
//创建runoob集合
db.createCollection("runoob")
//查看已有集合
show collections
//删除集合(runoob为集合名称)
db.runoob.drop()
三、文档(数据记录行)基础操作
1、增加数据
//向runoob集合插入文档,插入文档时如没有runoob集合,即创建runoob集合并插入
db.runoob.insert({name: 'MongoDB'})
//插入多条文档
db.runoob.insert([{name: 'MongoDB'},{name: 'MongoDB1'}])
//查看runoob集合内的文档
db.runoob.find()
2、删除数据
//删除runoob集合下_id为123的文档
db.runoob.remove( {"_id":ObjectId("123")} );
db.runoob.deleteMany( {status : "A"} ) //删除所有status为A的文档
db.runoob.deleteOne( {"_id":ObjectId("123")} ) //删除一个_id为123的文档
3、修改数据
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 :可选,抛出异常的级别。
//查询runoob集合下的所有status为A的文档,并修改name值
db.runoob.update( {"status":"A"} , { $set : { "name" : "runoob"} },false,true);
4、查询数据
//查看runoob集合内所有的文档
db.runoob.find()
//pretty() 方法以格式化的方式来显示所有文档
db.runoob.find().pretty()
//多个查询条件进行查找,相当于&&条件
db.runoob.find({
"_id":ObjectId("123"),
"name":"MongoDB"
}).pretty()
//or进行查找,相当于 || 条件查找
db.runoob.find(
{
$or: [
{"_id":ObjectId("123")},
{"name":"MongoDB"}
]
}
).pretty()
//查询likes>50 && ( _id=='123' || "name"="MongoDB" )的数据
db.runoob.find({
"likes": {$gt:50},
$or: [
{"_id":ObjectId("123")},
{"name":"MongoDB"}
]
}).pretty()
5、条件操作符
//(>) 大于 - $gt
db.runoob.find({
"likes": {$gt:50}
}).pretty()
//(<) 小于 - $lt
db.runoob.find({
"likes": {$lt:50}
}).pretty()
//(>=) 大于等于 - $gte
db.runoob.find({
"likes": {$gte:50}
}).pretty()
//(<= ) 小于等于 - $lte
db.runoob.find({
"likes": {$lte:50}
}).pretty()
5、使用数据类型查找
//查找title为string的数据
db.runoob.find({"title" : {$type : 'string'}})
6、Limit与Skip方法(用于分页查询)
//limit()方法指定从MongoDB中读取的记录条数
//skip()方法指定从MongoDB中跳过的记录条数。
//每页10条,跳过前10条,即为第二页
db.runoob.find({"name":'MongoDB'}).limit(10).skip(1*10)
skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。
7、sort()排序
// 1 为升序排列,而 -1 是用于降序排列。
db.runoob.find({"name":'MongoDB'}).sort({"likes":-1})