mongodb的增删改查、排序、

mongo

	这个数据库内主要使用集合存数据,集合内可以有不同的字段,但是一般有关联的放在一起.
	文档一般放着的是一组键值对,他可以使得相同字段里的内容数据不一样

linux的安装:sudo apt install mongodb   他的端口默认为27017

数据库的使用

数据库的创建
语法:use  数据库名
    这表示没有这个数据库就创建,有这个数据库就进入,
    mongodb一般语法都这样所以需要进入后查看下文档的内容,以免打错字母做无用功
数据库的删除
语法:db.dropDatabase()
这里默认当前数据库,所以你要先进入数据库
查看所有数据库
show dbs
查看当前数据库
db
da.getName()   #这是一个函数,返回name
> db.getName
function () {
        return this._name;
    }
查看数据库下的所有集合
show collections   #如果文档集合里没有数据可能他就不会显示出来
退出数据库
exit     #大部分数据库都可以用这个退出回到用户上,和crel+d一个效果

帮助文档

help
里面有各种文档帮助的命令,还可以进一步获取具体的帮助命令,他会列出所有帮助提示(英文)

其他命令
show users   #显示用户
show profile   #显示最新的系统。时间>= 1ms的概要文件
show log    #显示可访问的日志程序名称

对于集合的增删改查

创建集合
一样插入即创建,有就直接插入,没有就创建后插入
db.setname.insert({1:"值1",键2:"值2"})

插入多条,字段可以不一样,列入:
db.setname.insert({name:"jack",sex:"man"}{name:"Tom",age:18})
删除集合
db.setname.drop()
另一种save()插入方法
这个不常用,了解
save() 有两种用法
    一、指定id   如果save()指定id就会认为是修改    #id唯一,一般系统自动生成
    二、不指定id   那么save()和insert()就没有区别
db.setname.save({"_id" : ObjectId("5d26b27cba286fde38ff3f41"),1:"值1",键2:"值2"})
#上面的id获取要先查看在复制粘贴
文档查询
db.setname.find()    #这个查询所有内容
选择查询
语法:db.setname.find(
            query,        #查询条件
            {
                <key>:1,   #查询列   1为显示
                <key>:1
            }
        )
      例如:显示姓名,当age为12> db.student.find({age:12},{name:1})
{ "_id" : ObjectId("5d26b27cba286fde38ff3f41"), "name" : "yi" }

pretty()格式化显示文档(了解)
db.setname.find().pretty()

查询匹配结果的第一条语句
db.setname.findOne({age:12})
查询操作符
大于          -$gt         #db.setname.find({<key>:{$gt:<value>}})
大于等于      - $gte       #db.setname.find({<key>:{$gte:<value>}})
小于          - $lt
小于等于       - $lte

#处于两个之间则: db.setname.find({<key>:{$gte:<value>,$lte:<value>}})

统计条数count()
db.setname.find().count()

可以正则查询,即
db.setname.find({name:/^Tom$/})  #写在两个斜杆之间
条件查询
and
 db.setname.find( {条件1,条件2,……} )  # 不同条件逗号隔开写在第一个大括号内

or
 db.集合名.find( {$or:[{条件1},{条件2},……] } )  #写在中括号内,不同条件用大括号和逗号隔开

二者联合使用
    db.setname.find( { 条件1,条件2, $or:[{条件3},{条件4}] } )
limit、skip
limit()使用
db.setname.find().limit(5)    #显示五条数据,默认前五条

skip()使用
db.setname.find().skip(3)     #跳过前3条数据

联合使用
db.student.find().skip(3).limit(5)
这就类似于mysql的limit 3,5 实现先分页功能,只不过mongodb分开了而已
排序:
db.setname.find().sort({<key>:1|-1})
1表示升序,-1表示降序

这里要注意,没有这个字段一般升序是排在前面,并且文档字段不一样时会进行分开排序,
比如都有age,但是有的有name有的没有就会分开排序
文档更新
update()
db.setname.update(
            query,      #查询条件
            update,     #两个选项$set:直接更新    $inc:累加后更新(数字才可以)
            {
                upsert:<boolean>,   #默认false:如果数据不存在不插入,true:如果数据不存在直接插入
                multi:<boolean>,    #默认false:只改匹配到的第一条数据,true:改所有匹配到数据
               
            }
        )
把年龄为28的Tom名字改为jack不存在者插入,找到多个就全改
db.setname.update({name:'Tom',age:28},{$set:{name:'jack'}},true,true)
文档删除
remove()
db.set.remove(
            query,   #删除条件
            {
                justOne:<boolean>, #默认false或0:匹配到的全删,true或1:只删除一条
            }
        )
 #删除第一条name为jack的数据
db.student.remove({name:"jack"}1)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值