zoukankan      html  css  js  c++  java
  • MongoDB入门三:MongoDB shell

    MongoDB shell

    MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序。也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作。类似于SQL Server的管理工具SSMS。

    可以通过以下2条命令打开shell控制台:

    > cd C:Program FilesMongoDB 2.6 Standardin
    > mongo

    如图所示:

    C:Program FilesMongoDB 2.6 Standard 是MongoDB的安装目录。

    在打开shell控制台之前请确保MongoDB服务已启动,如何启动MongoDB可以参考MongoDB入门一:安装与配置

    MongoDB shell基本操作

    1.添加

    > db.blog.insert({"title":"aaa","content":"123","date":new Date()})
    

    添加一条数据使用insert方法,MongoDB会隐式地创建集合blog。如果添加的文档比较复杂,也可以先声明再添加,例如:

    > post = {"title":"aaa",
                    "content":"123",
                    "author":"Ming Li",
                    "summary":"This article focuses on Asp.net MVC.",
                    "date":new Date()
    }
    > db.blog.insert(post)
    

    2.查询

    不带参数的find方法会返回集合里面所有的文档,shell只显示20条。若只是想查看一条数据可以使用findOne方法,不带参数的findOne会返回当前集合中的第一条数据。

    findOne方法有一个带参数的重载,参数类型是文档,类似于find的带参数的用法。如果查询不到数据,findOne会返回null,如果查询到了多条数据,findOne会返回第一条。

    > db.blog.find()
    > db.blog.findOne()
    

    如果想查询集合blog中title为"aaa"的文档,可以给find或findOne添加参数:

    > db.blog.find({"title":"aaa"}) //可能会返回多条
    > db.blog.findOne({"title":"aaa"}) //只返回1条,如果查询不到数据,则返回null,这多么类似于.net中的FirstOrDefault方法

    MongoDB还可以进行更为复杂的查询,这里只做简单介绍。

    3.修改

    修改使用update方法,update是一个至少有2个参数的方法。

    假如集合book下有如下文档:

    {"_id":11,"item":"长安乱","publisher":"春风文艺出版社","author":"韩寒","price":20}
    

    要修改书的价格为19可以使用下面的命令:

    > db.book.update({"_id":11},{"price":19})
    

    如果想给它增加属性呢?假如我要使价格提高10,并且增加一个stock属性,其值为5,可以使用下面的命令:

    > db.book.update(
          {"_id":11},
          {
                $.set:{stock:5},
                $.inc:{price:10}
           }
       )
    

    修改之后的文档:

    {"_id":11,"item":"长安乱","publisher":"春风文艺出版社","author":"韩寒","price":29,"stock":5}
    

    MongoDB还可以进行更为复杂的修改操作,这里只做简单介绍。

    4.删除

    remove用来从数据库中永久性地删除文档。在不使用任何参数的情况下,它会删除集合内的所有文档。它也可以接受一个文档类型的参数以限定条件。

    例如下面的命令会删除blog中title为aaa的文档:

    > db.blog.remove({"title":"aaa"})
    

    shell的其他常用命令

    1.查看db下的所有命令或方法

    > db.help() 

    2.切换到数据库test,如果test不存在会自动创建

    > use test 
    

    3.删除当前连接的数据库

    > db.dropDatabase() //请谨慎操作
    

    4.查询本地所有数据库名称

    > show dbs
    

    5.查询当前数据库下的所有集合

    show collections
    

    6.查询当前集合下的文档个数

    db.collection.count() //示例:db.blog.count()

     7.删除某一个collection

    db.collectionName.drop() //请谨慎操作
  • 相关阅读:
    memset使用技巧
    AcWing 843. n-皇后问题
    【Oracle】从12c开始支持的Oralce新分页方案
    Oracle历年版本发布情况
    【SpringBoot】又写了一份新瓶装旧酒的CRUD程序
    【SpringBoot/Actuator】给SpringBoot程序添加Actuator监控管理
    Top Cybersecurity Companies for 2021
    SNAT、DNAT、MASQUERADE的区别
    Flannel的两种模式解析(VXLAN、host-gw)
    kubelet 配置资源预留的姿势
  • 原文地址:https://www.cnblogs.com/choon/p/3919924.html
Copyright © 2011-2022 走看看