MongoDB指令

这篇博客详细介绍了MongoDB的启动、连接、基本操作如查看数据库版本、切换数据库、创建集合、插入文档、删除与更新数据、查询及排序。还讨论了MongoDB中的游标使用和查询限制,包括limit()、skip()和sort()方法。此外,提到了如何在MongoDB中实现and、or条件查询。

MongoDB的启动:

  1. 启动MongoDB的服务
  2. 连接本地MongoDB的数据库
    操作:
    • 在MongoDB/bin目录下打开命令窗,shift+鼠标右键
    • 输入命令: mongod.exe --dbpath 你创建的MongoDB的db路径
    • 在MongoDB/Bin目录下新打开一个命令窗口,输入命令:mongo.exe
    • 连接成功会有提示
      注意:MongoDB的端口号:默认是27017
      MySQL的端口号默认是3306
      MongoDB的指令:
  3. 查看当前数据库版本号:
    db.version()
    2 .查看当前所在的库:
    db
    默认是test数据库
  4. 查看数据库连接的地址:
    db.getMongo()
  5. 查看所有的数据库:
    show databases
    注意:数据库中如果没有数据,则不显示
  6. 切换数据库:
    use 数据库名
    注意:如果切换到一个不存在的数据库,则会先创建再切入
  7. 创建集合:
    db.createCollection(‘集合名’)
  8. 查看集合:
    show tables / show collections
  9. 插入文档:
    db.集合名.insert({‘k1’:’v1’,‘k2’:’v2’,…}) / db.集合名.save({})
  10. 删除当前所在的数据库:
    db.dropDatabase()
  11. 查询数据:
    db.集合名.find()
  12. 删除集合:
    db.students.drop()
  13. 更新数据/修改数据:
    update(query,update,upsert,multi)
    query:条件(lt:小于;gt:大于;lte:小于等于;gte:大于等于;eq:等于;ne:不等于;)
    update:要更改成的对象
    upsert:可选参数,是一个布尔值,作用:是否插入不存在的更新数据
    multi:可选参数,是一个布尔值,作用:是否将查询出来的所有符合条件的数据全部更新
  14. 删除文档:remove(query)方法:
    db.集合名.remove() 清空文档
    db.集合名.remove({条件}) 删除所有符合条件的文档
    db.集合名.remove({条件},1) 删除符合条件的1条文档, 只能删除1个,数值无论填几都只删除1条.
  15. 查询文档:
    find(query)方法
    注意:使用find()查询出来的数据比较乱,不容易读取,所以find()通常和pretty()结合使用
    pretty()方法 格式化显示
    findOne() 只查询一条符合条件的数据,并且格式化显示,不能再使用pretty()方法
  16. MongoDB中and条件如何使用:
    MySQL: select * from 表 where q1= xxx and q2=xxx and …
    MongoDB: db.集合名.find({k1:v1,k2:v2,…})
  17. MongoDB中or条件如何使用:
    MySQL: select * from 表 where q1=xxx or q2=xxx or …
    MongoDB: db.集合名.find({k1:v1,$or:[{k2:v2},{k3:v3},…]})
  18. MongoDB中and和or如何同时使用:
    MySQL: select * from table where q1=xxx and(q2=xxx or q3=xxx or …)
    MongoDB: db.集合名.find({k1:v1,$or:[{k2:v2},{k3:v3},…])
  19. MongoDB中如何做到限制查询
    MySQL: select * from table limit 2,4
    MongoDB: db.集合名.find().limit(n) n 表示查询出几条数据
  20. MongoDB中的skip()
    db.集合名.find({条件}).skip(n) 跳过符合条件的n条数据,从第n+1条开始显示
  21. MongoDB中limit()和skip()的结合使用
    db.集合名.find({条件}).skip(n).limit(m) 从第n+1条数据开始显示,显示m条数据
  22. MongoDB中的排序使用 ---- sort()
    MySQL: select * from table order by age asc(正序,从小到大)/desc(倒序,从大到小)
    MongoDB: db.集合名.find({条件}).sort({k:1(正序)/-1(倒序)})
  23. MongoDB中的统计方法 ----count()
    MySQL: select count(*)
    MongoDB: db.集合名.find({条件}).count()查询符合条件数据的数量
  24. MongoDB中的游标
    MongoDB底层是JS引擎,所以,可以完美的执行JS操作
    for(var i=1; i<=1000; i++){
    db.集合名.insert({‘_id’:i, ‘title’:’python’+i, ‘content’:’hello world’+i})
    }
  25. 什么是游标
    MongoDB中的游标和MySQL中的游标是非常类似的,可以通过队友表进行一系列的设置来控制查询结果,但是,游标不是查询结果,游标是查询的一个返回资源或者接口,通过这个接口可以逐条读取数据,和Python生成器类似,但是,游标会消耗内存资源,所以,在油表使用结束后,应该尽快释放掉,在mongo shell中,如果游标定义之后没有变量接收,那么,默认自动迭代20次(显示20条数据),出现此情况,我们想要查看更多的数据时,必须使用it来进行查看.
    游标是有生命周期的:1.可以手动关闭 2.当游标迭代到最后一条数据时,自动关闭
    调整一次出现的数据数量:DBQuery.shellBatchSize=n, n为数字,即一次出现数据的数量
  26. 游标的使用
    (1)声明游标
    var cursor=db.集合名.find() cursor即为游标
    (2)next()方法,可以移动游标,取出游标的下一个文档
    (3)print(cursor.next()) 返回的是一个[object BSON],BSON对象是json的二进制类型
    (4)printjson(cursor.next())可以查看游标对应的数据内容
    (5)hasNext():查看游标是否能够 继续移动,返回布尔值,true为能继续移动,false不能继续移动
    (6)使用游标循环输出数据
    where (cursor.hasNext()){
    printjson(cursor.next())
    }
    (7)可以使用forEach()进行迭代,cursor.forEach(函数)
    var cursor=db.集合名.find({条件})
    var getContent = function(obj){
    printjson(obj.content)
    }
    cursor.forEach(getContent)
    (8)关闭游标
    cursor.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值