zoukankan      html  css  js  c++  java
  • MongoDB 插入文档

    文档的数据结构和 JSON 基本一样。

    所有存储在集合中的数据都是 BSON 格式。

    BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。

    插入文档

    MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

    db.COLLECTION_NAME.insert(document)
    或
    db.COLLECTION_NAME.save(document)
    
    • save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne()db.collection.replaceOne() 来代替。
    • insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。

    3.2 版本之后新增了 db.collection.insertOne() 和 db.collection.insertMany()。

    db.collection.insertOne() 用于向集合插入一个新文档,语法格式如下:

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

    db.collection.insertMany() 用于向集合插入一个多个文档,语法格式如下:

    db.collection.insertMany(
       [ <document 1> , <document 2>, ... ],
       {
          writeConcern: <document>,
          ordered: <boolean>
       }
    )
    

    参数说明:

    • document:要写入的文档。
    • writeConcern:写入策略,默认为 1,即要求确认写操作,0 是不要求。
    • ordered:指定是否按顺序写入,默认 true,按顺序写入。

    实例

    以下文档可以存储在 MongoDB 的 baidu 数据库 的 col 集合中:

    >db.col.insert({title: 'MongoDB 教程', 
        description: 'MongoDB 是一个 Nosql 数据库',
        by: 'haha',
        url: 'http://www.baidu.com',
        tags: ['mongodb', 'database', 'NoSQL'],
        likes: 100
    })
    

    以上实例中 col 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。

    查看已插入文档:

    > db.col.find()
    { "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "haha", "url" : "http://www.baidu.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
    > 
    

    我们也可以将数据定义为一个变量,如下所示:

    > document=({title: 'MongoDB 教程', 
        description: 'MongoDB 是一个 Nosql 数据库',
        by: 'haha',
        url: 'http://www.baidu.com',
        tags: ['mongodb', 'database', 'NoSQL'],
        likes: 100
    });
    

    执行后显示结果如下:

    {
            "title" : "MongoDB 教程",
            "description" : "MongoDB 是一个 Nosql 数据库",
            "by" : "haha",
            "url" : "http://www.baidu.com",
            "tags" : [
                    "mongodb",
                    "database",
                    "NoSQL"
            ],
            "likes" : 100
    }
    

    执行插入操作:

    > db.col.insert(document)
    WriteResult({ "nInserted" : 1 })
    > 
    

    插入文档你也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。

    3.2 版本后还有以下几种语法可用于插入文档:

    • db.collection.insertOne():向指定集合中插入一条文档数据
    • db.collection.insertMany():向指定集合中插入多条文档数据
    #  插入单条数据
    
    > var document = db.collection.insertOne({"a": 3})
    > document
    {
            "acknowledged" : true,
            "insertedId" : ObjectId("571a218011a82a1d94c02333")
    }
    
    #  插入多条数据
    > var res = db.collection.insertMany([{"b": 3}, {'c': 4}])
    > res
    {
            "acknowledged" : true,
            "insertedIds" : [
                    ObjectId("571a22a911a82a1d94c02337"),
                    ObjectId("571a22a911a82a1d94c02338")
            ]
    }
    

    一次插入多条数据

    1、先创建数组

    2、将数据放在数组中

    3、一次 insert 到集合中

    var arr = [];
    
    for(var i=1 ; i<=20000 ; i++){
        arr.push({num:i});
    }
    
    db.numbers.insert(arr);
    
  • 相关阅读:
    python+selenium+unnitest写一个完整的登陆的验证
    selenium+python启动Firefox浏览器失败问题和点击登陆按钮无效问题
    WEB请求处理
    MySQL数据库实现分页查询的SQL语句写法!
    容错性测试
    如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725
    python里如何获取当前日期前后N天或N月的日期
    java:面向对象(接口(续),Compareble重写,Comparator接口:比较器的重写,内部类,垃圾回收机制)
    java:面向对象(多态,final,抽象方法,(简单工厂模式即静态方法模式),接口)
    Java:面向对象(继承,方法的重写(overide),super,object类及object类中方法的重写,父子类代码块执行顺序)
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13948232.html
Copyright © 2011-2022 走看看