• Mongo Shell CRUD操作


    1.创建并使用test数据库

    use test;

    此时使用show dbs;命令查看当前存在的数据库是查看不到test数据库的,只有当test中insert数据之后才能查看到test数据库

    删除数据库
    1.先使用 use test进入到test的数据库
    2.执行db.dropDatabase();删除数据库

    删除集合
    db.collection.drop();
    例如:db.test.drop(); 可以不用进入到test的数据库就可以直接删除

    2.查看test数据库中的集合

    show collections

    3.创建文档命令

    db.<collection>.insertOne(
        <document>,
        {
            writeConcern: <document>
        }
    )
    
    <collection> 要替换成文档将要写入的集合的名字
    <document> 要替换成将要写入的文档本身
    writeConcern 定义了本次文档创建操作的安全写级别。
    安全写级别用来判断一次数据库写入操作是否成功,安全写级别越高,丢失数据的风险就越低,然而写入操作的延迟也就可能更高。
    如果不提供writeConcern文档,mongoDB使用默认的安全写级别

    例如将一下文档写入数据库
    {
      _id: "account1",
      name: "alice",
      balance: 100
    }

    写入命令为:

    db.accounts.insertOne(
    {
      _id:"account1",
     name:"alice",
      balance:100
     }
    )

    返回结果为:

    { "acknowledged" : true, "insertedId" : "account1" }

    "acknowledged" : true 表示安全写级别被启用

    由于我们在db.collection.insertOne()命令中并没有提供 writeConcern 文档,这里显示的是MongoDB默认的安全级写级别启用状态

    "insertedId"显示了被写入的文档的_id

    或者

    db.accounts.insert({"name":"谋知"})

    4.查看已插入的文档

    1.创建数据库
    user mongo;
    
    2.插入文档
    db.mongo.insert({"name":"谋知"})
    
    3.查询插入的数据
    db.mongo.find();
    
    将数据定义为变量插入
    document=({"sex":""})
    db.mongo.insert(document)

    5.更新文档

    update() 方法用于更新已存在的文档。语法格式如下:
    db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } ) 参数说明: query : update的查询条件,类似sql update查询内where后面的。 update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的 upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。 multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。 writeConcern :可选,抛出异常的级别。

    例如:
    db.mongo.updata({"name":"谋知"},$set:{"name":"谋知1"})
    以上命令只会修改第一条发现的文档,如果需要修改多条相同的文档,这需要设置multi参数
    db.mongo.updata({"name":"谋知"},$set:{"name":"谋知1"}).{multi:true}

      

    save() 方法通过传入的文档来替换已有文档。语法格式如下:
    db.collection.save(    
    	<document>,     
    	{      
    		writeConcern: <document> 
    	}  
    )  
    
    参数说明:
    document : 文档数据。
    writeConcern :可选,抛出异常的级别。
    
    例如:
    先使用save方法新增一个id为100的数据
    db.mongo.save({"_id":"100", "name":"谋知"})
    然后修改这条数据的name为谋知0
    db.mongo.save({"_id":"100", "name":"谋知0"})
    
    最后通过 db.mongo.find() 查看修改结果
    

    6.删除文档

    remove() 方法的基本语法格式如下所示:
    db.collection.remove( 
    	<query>,     
    	<justOne> 
    )  
    
    如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:
    db.collection.remove(     
    	<query>,     
    	{       
    		justOne: <boolean>,
    		writeConcern: <document> 
    	} 
    )
    参数说明:
    query :(可选)删除的文档的条件。
    justOne : (可选)如果设为 true 或 1,则只删除一个文档。
    writeConcern :(可选)抛出异常的级别。
    
    例如:
    先执行以下命令2次插入2条数据
    db.mongo.insert({"name":"谋知"})
    
    接下来删除name 为 “谋知” 的文档
    db.mongo.remove({"name":"谋知"}) 
    此时两条记录都被删除掉了,如果只想删除第一条则设置justOne为true或者1 执行如下命令
    db.mongo.remove({"name":"谋知"},{justOne:true})
    

      

     7.mongo查询文档

    MongoDB 查询数据的语法格式如下:
    db.COLLECTION_NAME.find()
    find() 方法以非结构化的方式来显示所有文档
    
    如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
    db.COLLECTION_NAME.find().pretty()
    
    如果只查询第一条数据可以使用findOne()
    
    例如
    查询name是“谋知”的
    db.mongo.find({"name":"谋知"})
    查询所有数据
    db.mongo.find()
    db.mongo.find().pretty()
    查询第一条数据
    db.mongo.findOne()


    MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,及常规 SQL 的 AND 条件。

    语法格式如下:
    db.mongo.find({key1:value1, key2:value2}).pretty()

    例如:

    db.mongo.find({"name":"谋知","_id":"100"})
    MongoDB OR 条件语句使用了关键字 $or,语法格式如下:
    db.mongo.find({$or:[{key1: value1},{key2: value2}]}).pretty()

    例如:
    db.mongo.find($or:[{"name":"谋知"},{"_id":"100"}]).pretty()

    and和or联合使用

    例如:
    db.mongo.find({"name":"谋知"},$or:[{"sex":"男"},{"_id":"100"}]).pretty()

      

    MongoDB与RDBMS Where 语句的比较

    8.mongodb中的操作符

    (>) 大于 - $gt
    (<) 小于 - $lt
    (>=) 大于等于 - $gte
    (<= ) 小于等于 - $lte

    $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。
    例如查询name为String类型的数据
    db.mongo.find({"name": {$type:2}})
    此处的2表示string类型的数据,如下是类型和type值得对应关系

    数据类型和type值得对应关系

    9.mongodb limit() 与 skip() 方法

    如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
    limit() 方法基本语法:
    db.COLLECTION_NAME.find().limit(NUMBER) 
    
    例如:
    db.mongo.find().limit(2)
    
    
    我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
    skip() 方法基本语法:
    db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
    
    例如:
    db.mongo.find().limit(1).skip(1)
    

     

    10.mongodb sort() 方法

    在MongoDB中使用使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。
    sort()方法基本语法如下所示:
    db.COLLECTION_NAME.find().sort({KEY:1})  
    
    例如:
    db.mongo.find().sort({"name":1})
    

      

  • 相关阅读:
    粤语·简约学习笔记
    Linux的网卡由eth0变成了eth1
    RedHat 更新CentOS Yum源
    Lamp 搭建
    像淘宝、京东这样的大型电商网站服务器构架完全部署方案
    完成静态服务器——Node.js摸石头系列之四
    实现使用Websocket通讯的聊天室——Node.js摸石头系列之六
    Node.js摸石头系列目录
    Aptana studio 3 修改配色方案
    Node.js 的安装和控制台命令——Node.js摸石头系列之一
  • 原文地址:https://www.cnblogs.com/gyli20170901/p/12269346.html
Copyright © 2020-2023  润新知