zoukankan      html  css  js  c++  java
  • MongoDB学习笔记(一)-Insert操作

    MongoDB插入

    Insert Documents

    • menu
      • insert Behavior
      • insert Methods

    插入行为

    * 如果集合不存在,插入操作将创建集合。
    * 在集合中,具有唯一主键`_id`。如果在插入文件中未声明`_id`;MongoDB将自动使用`ObjectIds`作为`_id`

    插入数据的方法

    MongoDB提供了保存数据的方法一共有三个:
    
        1. db.collection.insertOne()
        2. db.collection.insertMany()
        3. db.collection.insert()

    db.collection.insertOne()

    
    
    *3.2版本*
    将单个文档插入到一个集合,
     
    db.users.insertOne(
       {
          name: "sue",
          age: 19,
          status: "P"
       }
    )
    //会返回文档的操作状态。
    {
       "acknowledged" : true,
       "insertedId" : ObjectId("5742045ecacf0ba0c3fa82b0")
    }

    db.collection.insertMany()

    *3.2版本*
    将文档数组插入到一个集合,
    db.users.insertMany(
       [
         { name: "bob", age: 42, status: "A", },
         { name: "ahn", age: 22, status: "A", },
         { name: "xi", age: 34, status: "D", }
       ]
    )
    //会返回文档的操作状态。
    {
       "acknowledged" : true,
       "insertedIds" : [
          ObjectId("57420d48cacf0ba0c3fa82b1"),
          ObjectId("57420d48cacf0ba0c3fa82b2"),
          ObjectId("57420d48cacf0ba0c3fa82b3")
       ]
    }

    db.collection.insert()

    将单个或多个文档到一个集合。要插入一个单一的文件,传递文档;插入多个文件,传递文档数组。
    eg:
    //插入单个对象
    db.users.insert(
       {
          name: "sue",
          age: 19,
          status: "P"
       }
    )
    //返回一个 WriteResult 对象;如果插入错误,会返回错误信息
    WriteResult({ "nInserted" : 1 })
    
    //插入数组
    db.users.insert(
       [
         { name: "bob", age: 42, status: "A", },
         { name: "ahn", age: 22, status: "A", },
         { name: "xi", age: 34, status: "D", }
       ]
    )
    //返回 BulkWriteResult 对象
    BulkWriteResult({
       "writeErrors" : [ ],
       "writeConcernErrors" : [ ],
       "nInserted" : 3,
       "nUpserted" : 0,
       "nMatched" : 0,
       "nModified" : 0,
       "nRemoved" : 0,
       "upserted" : [ ]
    })

    同样能实现插入效果的方法

    • db.collection.update() 当upsert为true时//第三个参数
    • db.collection.updateOne() 当upsert为true时//第三个参数
    • db.collection.updateMany() 当upsert为true时//第三个参数
    • db.collection.findAndModify() 当upsert为true时**
    • db.collection.findAndModify() 当upsert为true时**
    • db.collection.findOneAndReplace() 当upsert为true时
    • db.collection.save().
    • db.collection.bulkWrite().

    db.collection.save()

    db.collection.save(doc) 若doc含有_id且在集合中存在,这将会替换集合内的文档(update),不存在则是insert该文档,若不存在_id,则是insert

  • 相关阅读:
    基础MYSQl技巧集锦
    C MySQL float类型数据 用 printf()打印
    1Tomcat+Axis+Eclipse实例讲解 2自己做的一个可以用的webservice,只是开始 (WebService好文)
    信号量 进程 (m个生产者,n个消费者,容量为r的缓冲区)
    信号量和同步互斥
    C语言 wait()信号量部分 signal()信号量部分代码
    Tomcat+Axis+Eclipse实例讲解
    MySQL 集合 补集
    SELECT DocID, SUM(a.Score + B.Score) AS TOTAL Itemset_ONE a LEFT Join Itemset_Two b ON a.DocID=b.DocID 太慢
    Yii AR Model 查询
  • 原文地址:https://www.cnblogs.com/weiwei-python/p/14078911.html
Copyright © 2011-2022 走看看