一、插入文档

  1)insert()方法

     (1)语法:   

db.COLLECTION_NAME.insert(document)

    (2)示例:

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

        

mongodb 动态 mongodb动态添加文档字段_MongoDB

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

                           2、col就是集合名

            ②查看已插入文档:

       

mongodb 动态 mongodb动态添加文档字段_MongoDB_02

           ③使用变量进行插入步骤

      

mongodb 动态 mongodb动态添加文档字段_MongoDB_03

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 动态 mongodb动态添加文档字段_NoSQL_04

  2)save()方法

       (1)语法:     

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

                1、参数说明:

                          document:文档数据。

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

       (2)示例

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

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

                 1、修改前

               

mongodb 动态 mongodb动态添加文档字段_数据_05

                  2、修改后

                

mongodb 动态 mongodb动态添加文档字段_数据_06

       (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 动态 mongodb动态添加文档字段_MongoDB_07

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

         

mongodb 动态 mongodb动态添加文档字段_数据_08

 

四、查询文档

     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 动态 mongodb动态添加文档字段_数据_09