mongodb基本操作

创建数据库
use table_1
创建集合
db.createCollection("集合名")
删除数据库 先切换到要删除的数据库
db.dropDatabase()
删除集合(集合就相当于一个表)
db.集合名.drop()
插入
db.集合名.insertone({
    name:'xx',
    age:18,
    score:100
})
db.集合名.insertmany([
    {name:'xx',age:18,score:100},
    {name:'cc',age:17,score:100}
])
删除
db.集合名.remove(
    {'name':'xx'}
)
删除集合内所有的数据
db.集合名.remove({})
更新
db.集合名.update(
    {'name':'cc'},   #查询条件
    {$set:{'name':'hh'}},    #修改
    {multi:true}    #修改所有相同查询条件的值
)
查询

find的第一个参数为:查询条件
第二个参数为:返回的字段,返回所有该参数省略即可

#pretty()方法以格式化的方式来显示所有文档

db.集合名.find().pretty()      #查询所有数据
db.集合名.find({'name':'cc','age':17}).pretty()    #find里传入多个键,相当于and查询
db.集合名.find(    #查询name等于cc 或 age 为18的数据
    {
        $or:[
            {'name':'cc'},
            {'age':18}
        ]
    }
).pretty()
db.集合名.find(    #查询score>90 and (name等于cc 或 age 为18)的数据
    {
        'score':{$gt:90},
        $or:[
              {'name':'cc'},
              {'age':18}
        ]
    }
).pretty()
条件操作符
 (>)  大于      $gt
 (<)  小于      $lt
 (>=) 大于等于  $gte
 (<=) 小于等于  $lte
db.集合名.find({'score':{$gt:90}})
limit:指定读取的记录条数
skip:跳过指定数量的数据
db.集合名.find({},{'name':1}).limit(2)     #展示前两天数据
db.集合名.find({},{'name':1}).limit(1),skip(1)     #显示第二条数据
sort()排序

1:升序 -1:降序

db.集合名.find().sort({KEY:1})
db.集合名.find({},{'name':1}).sort({'score':-1})
索引 createIndex()

1:按升序创建索引 -1:按降序

db.集合名.createIndex({'name':1})
#可以设置使用多个字段创建索引(复合索引)
db.集合名.createIndex({'name':1,'age':-1})
可选参数
  1. background:Boolean 后台方式创建索引
  2. unique:Boolean 建立索引是否唯一
  3. name:string 索引名称,如果未指定,将通过连接索引的字段名和排序顺序生成一个索引名称。
  4. expireAfterSeconds:integer 指定一个以秒为单位的数值,完成TTL设定,设定集合的生存时间。
db.集合名.createIndex({'name':1,'age':-1},{background:true})
db.集合名.getIndexes()                 #查看集合索引
db.集合名.totalIndexSize()             #查看集合索引大小
db.集合名.dropIndexes()                #删除集合所有索引
db.集合名.dropIndex('索引名称')        #删除指定索引
聚合 aggregate()
$sum :  db.集合名.aggregate([{$group:{_id:'$name',num:{$sum:'$score'}}}])
$avg    $min    $max    $push   $addToSet   $first  $last
db.集合名.aggregate(       #计算每个作者所写的文章数
    [{$group:
        {username:'$name',num_tutorial:{$sum:1}}
    }]
)
类似于:select name,count(*) from mysql group by name;
管道操作符

文档在一个管道处理完毕后将结果传递给下一个管道

$project:修改输入文档的结构
$match:过滤数据,只输出符合条件的文档
$limit      $skip
$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值
$group:将集合中的文档分组,可用于统计结果
$sort:将输入文档排序后输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值