欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MongoDB学习(六)之文档(document)之增删改查

程序员文章站 2024-01-22 23:17:04
...

一、插入文档

  1)insert()方法

     (1)语法:   

        db.COLLECTION_NAME.insert(document)

    (2)示例:

           ①将文档存储到user数据库的col集合中:

        MongoDB学习(六)之文档(document)之增删改查

                注意:1、若col集合不存在数据库中,则会自动创建该集合并插入文档。           

                           2、col就是集合名

            ②查看已插入文档:

       MongoDB学习(六)之文档(document)之增删改查

           ③使用变量进行插入步骤

      MongoDB学习(六)之文档(document)之增删改查

2)save()方法

     (1)不指定_id字段的save()方法类似于insert()方法。

     (2)指定_id字段的save()方法,会更新该_id的数据。

 

二、更新文档

1)update()方法

  (1)语法

db.collection.update(
     <query>,
     <update>,
     {
        upsert:<boolean>,
        multi:<boolean>,
        writeConcern:<document>
     }
) 

        1、参数说明:

           ①query:查询条件(类似sql update中的where后面的)。

           ②update:更新的对象和一些更新的操作符(如$、$set、$inc等)(类似sql update查询内set后面的内容)。

           ③upsert:可选项,若不存在update的记录,是否插入objNew。true为插入,false为不插入(MongoDB的默认情况)。

           ④multi:可选项,false,只更新找到的第一条记录(MongoDB的默认情况)

                                        true,把按条件查出来的多条记录全部更新。

           ⑤writeConcern:可选项,抛出异常的级别。

   

     (2)示例

             ①更新插入的数据中的name=lihao为name=lh

            MongoDB学习(六)之文档(document)之增删改查

  2)save()方法

       (1)语法:     

  db.collection.save(
            <document>,
            {
              writeConcern:<document>
            }
         )

                1、参数说明:

                          document:文档数据。

                          writeConcern:可选项,抛出异常的级别。

       (2)示例

                ①若_id存在,替换为该文档数据。

                    若_id不存在,插入该文档数据。

                 1、修改前

               MongoDB学习(六)之文档(document)之增删改查

                  2、修改后

                MongoDB学习(六)之文档(document)之增删改查

       (3)更多的示例

             ①全部更新

db.col.update( { "year" : { $gt : 15 } } , { $inc : { "year" : 1} },false,true )

            注意:1、$inc:将目标key的value加上后面的值,这里就是给year+1。   

       

            ②只添加第一条

db.col.update( { "year" : { $gt : 20 } } , { $set : { "description" : "成年人"} },true,false )

            注意:1、$set:若键存在,用来指定一个键并更新键值;

                                       若键不存在并创建。

三、删除文档

    1)remove()方法

       (1)语法(2.6版本以后)

db.collection.remove(
     <query>,
     {
       justOne:<boolean>,
       writeConcern:<document>
     }
)

        1、参数说明:

               ①query:可选项,删除文档的条件。

               ②justOne:可选项,为true/1时,只删除一个文档。

               ③writeConcern:可选项,抛出异常的级别。

    

    (2)示例

           ①仅删除符合条件的记录的一条

         MongoDB学习(六)之文档(document)之增删改查

           ②删除所有符合条件的记录

         MongoDB学习(六)之文档(document)之增删改查

 

四、查询文档

     1)find()方法

        (1)语法

   db.collection.find(query,projection)

            1、参数说明:

                    ①query:可选项,查询条件(使用查询操作符)。

                    ②projection:可选项,指定返回的键(使用投影操作符)。

       注意:1、美化find()的结果(易读)

  db.col.find().pretty()

                  2、findOne()方法,它只返回一个文档。

 

  2)MongoDB条件语句与SQL where语句比较

操作

格式

示例

SQL中的where语句

等于

{<key>:<value>}

db.col.find(“name”:”lh”).pretty()

where name=”lh”

小于

{<key>:{$lt:<value>}}

db.col.find({“year”:{$lt:17}}).pretty()

where year<17

小于或等于

{<key>:{$lte:<value>}}

db.col.find({“year”:{$lte:17}}).pretty()

where year<=17

大于

{<key>:{$gt:<value>}}

db.col.find({“year”:{$gt:17}}).pretty()

where year>17

大于或等于

{<key>:{$gte:<value>}}

db.col.find({“year”:{$gte:17}}).pretty()

where year>=17

不等于

{<key>:{$ne:<value>}}

db.col.find({“year”:{$ne:17}}).pretty()

where year != 17

 3)MongoDB  AND条件

          (1)语法

db.col.find({key1:value1,key2:value2}).pretty()

4)MongoDB OR条件

         (1)语法

db.col.find(
    {
       $or:[
             {key1:value1},{key1:value1}
       ]
    }
).pretty()

  5)AND+OR示例

       MongoDB学习(六)之文档(document)之增删改查

相关标签: NoSQL MongoDB