MongoDB 插入文档

小柒助手 MongoDB评论60.2K字数 1958阅读6分31秒阅读模式

MongoDB 插入文档

本章节中我们将向大家介绍如何将数据插入到 MongoDB 的集合中。

文档的数据结构和JSON基本一样。
文章源自小柒网-https://www.yangxingzhen.cn/7086.html

所有存储在集合中的数据都是 BSON 格式。
文章源自小柒网-https://www.yangxingzhen.cn/7086.html

BSON是一种类似JSON的二进制形式的存储格式,是 Binary JSON 的简称。
文章源自小柒网-https://www.yangxingzhen.cn/7086.html

插入文档

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:
文章源自小柒网-https://www.yangxingzhen.cn/7086.html

db.COLLECTION_NAME.insert(document)文章源自小柒网-https://www.yangxingzhen.cn/7086.html


文章源自小柒网-https://www.yangxingzhen.cn/7086.html

db.COLLECTION_NAME.save(document)
文章源自小柒网-https://www.yangxingzhen.cn/7086.html

save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用db.collection.insertOne()或db.collection.replaceOne()来代替。
文章源自小柒网-https://www.yangxingzhen.cn/7086.html

insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException异常,提示主键重复,不保存当前数据。
文章源自小柒网-https://www.yangxingzhen.cn/7086.html

3.2 版本之后新增了 db.collection.insertOne() 和 db.collection.insertMany()。
文章源自小柒网-https://www.yangxingzhen.cn/7086.html

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 的 test数据库 的 col 集合中:

> db.col.insert({title: 'MongoDB 教程',

    description: 'MongoDB 是一个Nosql数据库',

    by: '小柒博客',

    url: 'https://www.yangxingzhen.cn',

    tags: ['mongodb', 'database', 'NoSQL'],

    likes: 100

})

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

查看已插入文档:

> db.col.find()

{ "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库",

"by" : "小柒博客", "url" : "https://www.yangxingzhen.cn", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }

>

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

> document=({title: 'MongoDB 教程',

    description: 'MongoDB 是一个 Nosql 数据库',

    by: '小柒博客',

    url: 'https://www.yangxingzhen.cn',

    tags: ['mongodb', 'database', 'NoSQL'],

    likes: 100

});

执行后显示结果如下:

{

        "title" : "MongoDB 教程",

        "description" : "MongoDB 是一个 Nosql 数据库",

        "by" : "小柒博客",

        "url" : "https://www.yangxingzhen.cn",

        "tags" : [

                "mongodb",

                "database",

                "NoSQL"

        ],

        "likes" : 100

}

执行插入操作:

> db.col.insert(document)

WriteResult({ "nInserted" : 1 })

>

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

若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!

继续阅读
Wechat
微信扫一扫,加我!
weinxin
我的微信
微信公众号
微信扫一扫,关注我!
weinxin
我的公众号
小柒助手
  • 本文由 小柒助手 发表于 2020年5月18日15:26:14
  • 声明:本站所有文章,如无特殊说明或标注,本站文章均为原创。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。转载请务必保留本文链接:https://www.yangxingzhen.cn/7086.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

拖动滑块以完成验证