zoukankan      html  css  js  c++  java
  • MongoDB学习笔记——文档操作之增删改

    插入文档

    使用db.COLLECTION_NAME.insert()  db.COLLECTION_NAME.save() 方法向集合中插入文档

         db.users.insert( {
    
                user_id: "abc123",
    
                age: 55,
    
                status: "A"
    
                } )
    

    在插入的文档中,如果没有指定 _id 参数,MongoDB 会自动为文档指定一个唯一的 ID

    使用db.COLLECTION_NAME.insert() 方法传入一个文档数组,进行批量插入

         db.users.insert( [{
    
                user_id: "abc123",
    
                age: 55,
    
                status: "A"
    
                },{
    
                user_id: "abc3",
    
                age: 55,
    
                status: "A"
    
                },{
    
                user_id: "abc13",
    
                age: 55,
    
                status: "A"
    
                }] )
    

    也可以使用db.users.save(document) 插入文档。如果没有指定文档的 _id,那么 save() 就和 insert() 完全一样了。如果指定了文档的 _id,那么它会覆盖掉含有 save() 方法中指定的 _id的文档的全部数据。

    更新文档

    使用db.COLLECTION_NAME.update()  db.COLLECTION_NAME.save() 方法来更新集合中的文档

    update 语法格式
        db.COLLECTION_NAME.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.users.update({'user_id':"abc13"},{$set:{'age':77}})
    
    save语法格式

    db.COLLECTION_NAME.save 方法利用传入该方法的文档来替换已有文档(通俗解释:如果save方法传入的文档结构A与原文档结构B不一致时,则会使用新的文档结构A替换原来的文档结构B)。如果没有指定文档的 _id,那么 save() 就和 insert() 完全一样了。如果指定了文档的 _id,那么它会覆盖掉含有 save() 方法中指定的 _id的文档的全部数据

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

    参数说明:

    • document : 文档数据。
    • writeConcern :可选,抛出异常的级别。
           db.users.save({"_id" : ObjectId("582194dd7f953cec73197bb1"),'status':"OK"})
    

    删除文档

    使用db.COLLECTION_NAME.remove() 方法来删除集合中的文档

    remove 语法格式
        db.COLLECTION_NAME.remove(
    
    <query>,
    
       {
    
         justOne: <boolean>,
    
         writeConcern: <document>
    
       }
    
    )
    

    参数说明:

    • query :(可选)删除的文档的条件
    • justOne : (可选)如果设为 true 1,则只删除一个文档。
    • writeConcern :(可选)抛出异常的级别。
        db.users.remove({"status" : 'OK'})
    

    如果你只想删除第一条找到的记录可以设置 justOne 1

        db.COLLECTION_NAME.remove(query,1)
    

    如果想删除集合中的所有数据可以通过以下方式处理(相当于关系型数据库中的truncate 命令)

        db.COLLECTION_NAME.remove({})
    

    关系型数据库与MongoDB数据库在一些术语上的对比

    关系型数据库(mysql)

    MongoDB

    备注

    insert into `testdb`.`users` (`user_id`,`age`,`status`) values (1,100,"A");

    db.users.insert( { user_id: "abc123", age: 55, status: "A" } ) db.users.save( { user_id: "abc123", age: 55, status: "A" } )

     

    update `testdb`.`users` set age=50 where age=100

    db.users.update({'age':100},{$set:{'age':50}},{multi:true})

    根据主键更新全表数据时可以使用db.COLLECTION_NAME.save()语法,部分字段更新不建议使用

    update `testdb`.`users` set age=50 where age=100 limit 1

    db.users.update({'age':100},{$set:{'age':50}},{multi:false})

    根据主键更新全表数据时可以使用db.COLLECTION_NAME.save()语法,部分字段更新不建议使用

    delete from `testdb`.`users` where age=100 limit 1

    db.users.remove({'age':100},1)

     

    delete from `testdb`.`users` where age=100

    db.users.remove({'age':100})

     

    truncate `testdb`.`users`

    db.users.remove({})

     
  • 相关阅读:
    Mbps、Kbps、bps、kb、mb区别和换算
    Python导入模块方法
    C# WinForm 程序免安装 .NET Framework(XP/win7/win10环境运行)
    生成缩略图
    WCF 的优势和特点
    不要在using语句中调用WCF服务
    pb getchild获取DropDownDW子窗体后进行取值
    Bootstrap后台管理模板调研
    PB调用C#编写的DLL
    PowerBuilder与嵌入浏览器交互
  • 原文地址:https://www.cnblogs.com/AlvinLee/p/6062743.html
Copyright © 2011-2022 走看看