MongoDB数据库、集合操作(增删改查) 我会带着你远行 2022-12-15 03:45 143阅读 0赞 数据库操作 #### 选择和创建数据库 #### use articledb 都是用的是use,在这里进行创建数据库之后,再进行show dbs 查看数据库,会发现articledb这个数据库并没有出现,在这里因为存储机制的关系,这个数据库还只存在内存当中,当这个数据库当中有一个集合的时候就会持久化磁盘当中,那个时候这个数据库才可以看到这个数据库。 #### 查看当前数据库 #### 使用db命令即可查看。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center] #### 数据库的删除 #### 使用的是一个方法,db代表当前数据库 db.dropDatabase() 测试如下 ![在这里插入图片描述][20201015133140117.png_pic_center] 集合操作 #### 集合创建 #### 集合相当于关系数据库当中的表 ##### 显示创建 ##### 使用`createCollection()`方法进行创建。 db.createCollection("log") 使用`show collections` 即可查看当前库有多少条集合。 ##### 隐式创建 ##### 当向一个集合中插入一个文档的时候,如果集合不存在,则会自动创建集合。 db.collection.insert( <document or array of documents>, { writeConcern: <document>, ordered: <boolean> } ) 参数解析: <table> <thead> <tr> <th>Parameter</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>document</td> <td>document or array</td> <td>要插入到集合中的文档或文档数组。(json格式)</td> </tr> <tr> <td>writeConcern</td> <td>document</td> <td>插入的性能的级别等</td> </tr> <tr> <td>ordered</td> <td>boolean</td> <td>可选。如果为真,则按顺序插入数组中的文档,如果其中一个文档出现错误,MongoDB将返回而不处理数组中的其余文档。如果为假,则执行无序插入,如果其中-个文档出现错误,则继续处理数组中的主文档。在版本2.6+中默认为true</td> </tr> </tbody> </table> 进行测试,使用insert进行插入数据 db.col.insert({title:"mongodb",description:"this is database",likes:100}) 使用find()方法进行查询结果 ![在这里插入图片描述][20201015135636853.png_pic_center] 在这里不单单是可以插入一条数据,也可以插入多条数据,使用insertMany()方法 db.col_many.insertMany([ {title:"mongodb",description:"this is database",likes:100}, {title:"mongodb",description:"this is database",likes:100}, {title:"mongodb",description:"this is database",likes:100} ]) 只用同样的使用find进行查询 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 1] #### 集合删除 #### db + 集合名 + drop方法进行删除,在删除之后再进行查看集合。 db.log.drop() #### 集合查询 #### 使用到一个find方法 在这个find方法当中也可以带参数进行查询,比如在前面创建的col\_many集合当中查询 db.col_many.find({title:"mongodb"}) db.col_many.find({title:"mongodb1"}) 查看结果 ![在这里插入图片描述][20201015140600332.png_pic_center] 这里还有一个fingOne()方法,只会返回一条数据 db.col_many.findOne({title:"mongodb"}) ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 2] #### 投影查询 #### 在关系数据库当中就相当于子查询某几个字段,只需要再后面加上参数,参数也是json的数据类型, db.col_many.find({title:"mongodb"},{title:1}) db.col_many.find({title:"mongodb"},{title:1,_id:0}) \_id是会默认显示的,给后面加上`_id:0`就可以将其隐藏 ![在这里插入图片描述][20201015141044391.png_pic_center] #### 数据更新 #### 覆盖的修改,修改之后全部都会进行覆盖。 db.col.update({ "title":"mongodb"},{ "likes":101}) 进行测试,可以看到数据直接进行了替换。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 3] 局部修改,为了解决这个问题,我们需要使用修改器$set来实现,命令如下: db.col.update({ "title":"mongodb1"},{$set:{ "likes":101}}) 查看结果,会发现mongodb1的likes的值从100改成了101 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 4] 批量修改:使用到一个新的参数 `{multi:true}` ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 5] #### 数据删除 #### 使用remove进行删除,remove当中可以添加参数 `db.col.remove({"title":"mongodb1"})` 删除title为mongodb1的这一条数据。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 6] 在这里 `db.col.remove({})` 就表示删除所有数据。 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center]: /images/20221123/f1bb42c3f42f439baa119dbad17072ff.png [20201015133140117.png_pic_center]: /images/20221123/f667cc6d170f4b03aa6f7a612c5b8a9d.png [20201015135636853.png_pic_center]: /images/20221123/d9e264e0c82c455ab83650886976e299.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 1]: /images/20221123/de75ef49232a4d7081a6bc1764b4a791.png [20201015140600332.png_pic_center]: /images/20221123/e594a53879224ba8bb4ec92529ef2161.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 2]: /images/20221123/9ebb9269a62944ab9657bd3c5cda2cc4.png [20201015141044391.png_pic_center]: /images/20221123/de6f73281cab422097d6dcb39861d198.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 3]: /images/20221123/9528c4a9d4ba40008e7a0b299f7754f7.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 4]: /images/20221123/47f4aeeffb2f4b508a0c6ae51bffc153.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 5]: /images/20221123/77a2a1d863f34077a6d8cf6124e9b84f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTczMTU5_size_16_color_FFFFFF_t_70_pic_center 6]: /images/20221123/f1be5032feca4d8f8a91b0a64ae1afb7.png
还没有评论,来说两句吧...