第13章 MongoDB 插入文档教程

第13章 MongoDB 插入文档教程

本章节中咱们将向大家介绍如何将数据插入到 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 的 liulianjiangcsdn database 的 col 集合中:


    >db.col.insert({title: 'MongoDB 教程', 
        description: 'MongoDB 是一个 Nosql database',
        by: 'liulianjiangcsdn教程',
        url: 'http://blog.csdn.net/qq441540598',
        tags: ['mongodb', 'database', 'NoSQL'],
        likes: 100
    })

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

查看已插入文档:


    > db.col.find()
    { "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql database", "by" : "liulianjiangcsdn教程", "url" : "http://blog.csdn.net/qq441540598", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
    >

咱们也可以将数据定义为一个变量,请在输出结果查看


    > document=({title: 'MongoDB 教程', 
        description: 'MongoDB 是一个 Nosql database',
        by: 'liulianjiangcsdn教程',
        url: 'http://blog.csdn.net/qq441540598',
        tags: ['mongodb', 'database', 'NoSQL'],
        likes: 100
    });

执行后显示结果请在输出结果查看


    {
            "title" : "MongoDB 教程",
            "description" : "MongoDB 是一个 Nosql database",
            "by" : "liulianjiangcsdn教程",
            "url" : "http://blog.csdn.net/qq441540598",
            "tags" : [
                    "mongodb",
                    "database",
                    "NoSQL"
            ],
            "likes" : 100
    }

执行插入操作:


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

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

本专栏所有文章

第1章 MongoDB 教程第2章 NoSQL 简介教程
第3章 MongoDB 简介教程第4章 Windows MongoDB教程
第5章 Linux MongoDB教程第6章 OSX MongoDB教程
第7章 MongoDB 概念解析教程第8章 MongoDB 连接教程
第9章 MongoDB 创建数据库教程第10章 MongoDB 删除数据库教程
第11章 MongoDB 创建集合教程第12章 MongoDB 删除集合教程
第13章 第13章 MongoDB 插入文档教程教程第14章 MongoDB 更新文档教程
第15章 MongoDB 删除文档教程第16章 MongoDB 查询文档教程
第17章 MongoDB 条件操作符教程第18章 MongoDB $type 操作符教程
第19章 MongoDB Limit与Skip方法教程第20章 MongoDB 排序教程
第21章 MongoDB 索引教程第22章 MongoDB 聚合教程
第23章 MongoDB 复制(副本集)教程第24章 MongoDB 分片教程
第25章 MongoDB 备份与恢复教程第26章 MongoDB 监控教程
第27章 MongoDB Java教程第28章 MongoDB PHP 扩展教程
第29章 MongoDB PHP教程第30章 MongoDB PHP7教程
第31章 Node.js MongoDB教程第32章 MongoDB 关系教程
第33章 MongoDB 数据库引用教程第34章 MongoDB 覆盖索引查询教程
第35章 MongoDB 查询分析教程第36章 MongoDB 原子操作教程
第37章 MongoDB 高级索引教程第38章 MongoDB 索引限制教程
第39章 MongoDB ObjectId教程第40章 MongoDB Map Reduce教程
第41章 MongoDB 全文检索教程第42章 MongoDB 正则表达式教程
第43章 MongoDB 管理工具教程第44章 MongoDB GridFS教程
第45章 MongoDB 固定集合教程第46章 MongoDB 自动增长教程

寄语

本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598

  • 只要是你认可的事,即使受到100次打击,也要做101的努力。
  • 任何场合,保持应有的涵养。学会说谢谢、辛苦您、对不起。做错事情要懂得道歉和改过。
  • 战争也爱吃美味的食品,他带走好人,留下坏人
  • 大器不必晚成,趁着年轻,努力让自己的才能创造的价值。
  • 埋怨父母给你指错方向是有一个时间段的。当你成长到可以控制自我方向的时候,你就要自己承担责任了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴莲酱csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值