//====================基本操作======================
db 查看当前数据库名
show dbs 查看当前的所有数据库名
use xxxx 切换到指定的数据库
use xxx 创建数据库(当数据库名不存在时则创建该数据库)
(当数据库为空时 则不会真正创建该数据库 直到数据库中存在内容)
db.dropDatabase() 删除当前数据库
db.集合名.drop() 删除指定集合
db.getCollectionNames() 查看当前数据库下的所有集合名
//====================插入数据======================
db.集合名.insert({}) 向指定的集合内插入文档(数据)
如果传入的是一个文档 则是插入单条数据 如果传入数组 则可插入多条数据
db.集合名.insertOne({}) 插入单条数据
db.集合名.insertMany([]) 插入多条数据
//====================查询数据======================
db.集合名.find(select,attr) 查询指定集合的数据
attr属性为对象类型 可通过该对象下属性的值来控制查询结果是否显示某一条属性
如果声明了某一个属性的值为1 则其他属性默认不显示 (_id除外,若想_id不显示 则必须设置其值为0)
条件操作符
$gte : 大于等于
$gt : 大于
$lte : 小于等于
$lt : 小于
$ne : 不等于
$not : 取反 db.cars.find({discount:{$not:{$lt:8}}}) 取所有折扣 不 小于8 的数据
======适用于数组类型数据筛选======
$in : 包含其中一个
$all : 包含其中所有
$nin : 不包含任意一个
======适用于number类型======
$mod : 取模 ===> 属性 : {$mod : [除数,余数]}
实例: db.cars.find({discount:{$mod:[5,0]}},{}) 取所有折扣为 除5余0 的数据
find().pretty() 将查询到的数据格式化一下
多条件查询
.find({条件一,条件二}) 条件一且条件二
.find({$or : [ {条件一} ,{条件二}]}) 条件一 或者 条件二
且或混用
.find({$or:[ {条件一,条件二} ,{条件三} ]}) 条件一而且条件二 或者 条件三
.find().limit(n) 取满足条件的头n条数据
.find().skip(n) 跳过n条之后再来开始取数据
.find().limit(n).skip(n) 跳过n条数据后再取n条数据 (skip方法用在前面和后面没有区别)
.find().sort({price:1,discount:-1}) (值为-1则是降序 1则是升序)
排序 数据按照价格进行升序排序 如果价格一样 则按照折扣进行降序排序
.find().count() 对满足条件的数据进行数量统计
//====================更新数据======================
db.集合名.update(select,seter,option)
select 为条件查询
seter为修改操作
option 为对象类型
该对象下有两个属性
multi: 布尔值 是否更新所有满足条件的数据 默认值是false 当值为true时 则更新所有满足条件的数据
upsert: 布尔值 如果不存在符合条件的数据,是否插入该条数据 默认值false 当值为true时则插入该条数据
修改器:
$set : 直接将新的值替换掉旧的值
$inc : 对原来的值进行增减操作 正值为相加 负值为相减
$unset : 删除属性 (键) 此时指定属性的值无论为正值 负值或者是0 均不会对操作结果产生影响
=========适用于数组=========
$push : 向属性值中添加一个元素
$addToSet : 向属性值中添加一个元素(如果被添加的元素已经存在 则不会再次添加该数据)
$pop : 从头部或者尾部删除一条数据 当值为正值时 代表从尾部删除一条数据 若值为负值则代表从头部删除一条数据
db.cars.update({carnam:"凯迪拉克ATL"},{$push:{tag:"豪华"}})
$pull : 删除满足条件的元素 例如: db.cars.update({carname:"xxx"},{$pull:{tag:"家用"}}) tag中值为"家用"的元素
//====================删除数据======================
db.cars.remove(select,option);
select 需要被删除的数据条件 默认情况下 会删除所有满足条件的数据
如果要一次性删除集合内的所有数据 则remove()内必须要添加一个参数,即便是空对象 即: .remove({})
option 为对象
justOne: 是否只删除符合条件的第一条数据 默认值是false 当值为true的时候 会只删除符合条件的第一条数据
查询所有 折扣数小于8 或者价格大于等于450000
db.cars.find({discount:{$lt:8},price:{$gte:450000}},{_id:0})
db.cars.find({$or:[{discount:{$lt:8}},{price:{$gte:450000}}]})
{条件一,条件二}
{ $or : [
{条件一} ,{条件二}
]
}
条件一而且条件二 或者 条件三
价格小于等于45w而且拥有跑车气质 或者价格大于等于100w
db.cars.find({$or:[{price:{$lte:450000},tag:{$in:["跑车"]}},{price:{$gte:1000000}}]})
{ $or : [
{条件一,条件二} ,{条件三}
]
}
db.cars.find({price:{$lte:450000}}).count()